| 
      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  | 
      
  |