Sezione |
Indirizzi Base
Registri Interni
|
Libreria GIOBE.ASM |
Raccolta di Procedure ASM |
Delay 2/3 - Portabilità dei Ritardi [29 di 54] |
Procedure di ritardo - Il problema della portabilità |
Perchè la procedura di ritardo progettata sul mio computer non funziona su un altro computer... |
|
La portabilità di un codice assembly è la sua capacità di essere eseguito con le medesime caratteristiche su ogni computer; una della tecniche più a rischio è la generazione di tempi di ritardo. |
|
Per generare un ritardo è sufficiente perdere tempo... e il modo più semplice per questo è eseguire a vuoto un determinato numero di istruzioni; ma questa tecnica non e una soluzione attendibile! |
|
Vediamo le ragioni per le quali risulta difficile
calcolare con sicurezza il
tempo di ritardo introdotto:
|
|
Data una procedura di ritardo, è possibile solo in modo approssimato risalire al numero di Cicli T da essa consumati; come non bastasse, il tempo effettivo del ritardo sarà fortemente influenzato dal computer sul quale verrà eseguito il codice che lo ha prodotto. |
|
Infatti il numero di Cicli T dovrà essere moltiplicato per l'inverso della frequenza di clock del processore montato sul computer e, inevitabilmente, a parità di codice assembly la procedura collaudata nei giusti tempi sul mio "megaPCultimogrido" sarà mortalmente lenta sul "PCdiGaribaldi"..; mentre quella scritta dall'Eroe a Teano per V.E.II sarà, sul mio, un impercettibile schizzo... |
|
Le procedure di ritardo basate sull'esecuzione iterativa di istruzioni sono imprecise, inaffidabili e non portabili (da un PC all'altro). |
|
Il problema si può risolvere affidandoci al Timer di Sistema, il dispositivo chiamato a sincronizzare la vita del computer sulla base di un segnale periodico di frequenza 18,2064819 Hz, ossia di periodo 54,925493 ms. |
|
Con questa cadenza il processore è obbligato (tra le altre cose..) ad aggiornate i Ticks di sistema, cioè la misura del tempo trascorso nell'arco del giorno; una preziosa risorsa, consultabile in ogni momento dal programmatore preparato. |
|
Questo tempo minimo di circa 55 ms può costituire la base per ritardi di assoluta precisione, affidabili e soprattutto portabili (cioè consumabili in modo uguale su tutti i computer), anche con i più moderni sistemi operativi (Windows 2000/NT/XP). |
|
Per assicurare ritardi di assoluta precisione
la Libreria
Giobe.ASM/LIB
dispone di:
|
|
Libreria GiobeASM | Delay 2/3 - Portabilità dei Ritardi | |||||||
29 di 54 |
|
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|