| 
      Sezione | 
      
       
   
    
      Indirizzi Base
    
    
    
      Registri Interni
    
      | 
    
| Libreria GIOBE.ASM | 
| Raccolta di Procedure ASM | 
      Delay 3/3 - Dettaglio sull'Algoritmo ASM [30 di 54]  | 
 
|            | 
      
| Procedure di ritardo - Descrizione dell'algoritmo | 
| Come la procedura di ritardo sfrutta le caratteristiche del Timer di Sistema | 
| 
         
  | 
      
| Nella pagina precedente abbiamo imparato che il Timer di Sistema controlla ogni evento temporale del nostro computer, scandendone la vita a suon di Tick di sistema, con frequenza di 18,2064819 Hz, cioè generando un fronte attivo ogni 54,925493 ms | 
| 
         
  | 
      
| Il geniale progettista delle magiche Procedure del Bios ha previsto un intero pacchetto di Funzioni dedicate al controllo dell'Orologio in Tempo Reale, raccogliendole nella libreria INT 1AH e destinando ad esso anche numerose locazioni di sistema, nell'Area di comunicazione Bios. | 
| 
         
  | 
      
In particolare le 4 
  variabili di sistema da
                   0000:046CH a 
    0000:046FH contengono il numero  corrente (a 32 bit) dei 
  Ticks prodotti nell'arco della giornata; 
  vediamo alcuni valori assunti da questa doubleword nell'arco della giornata:
  | 
| 
         
  | 
      
| Dunque, al termine della giornata, poco prima delle 24:00:00, il valore corrente dei Ticks di sistema sarà 18 volte più grande, 001800AFH =1573039 e, all'arrivo del Tick successivo dovrebbe portarsi al valore , 001800B0H =1573040, ma in realtà il contenuto delle variabili si riazzera e tutto ricomincia da capo. | 
| 
         
  | 
      
| La Procedura Delay e le sue derivate Del_100, Del_1000, Del_1500 e Del_2000 utilizzano questa risorsa per generare ritardi svincolati dalla velocità del processore, precisi, affidabili e portabili. | 
| 
         
  | 
      
La possibilità di consumare tempo (comunque 
  multiplo di circa 55 ms) è legata alla 
  lettura delle  4 
  variabili, affidata alla  
  Funzione 00H dell'INT 1AH 
  Bios:
  | 
| 
         
  | 
      
      ![]()  | 
    
| 
         
  | 
      
La parte iterativa del flow-chart è piuttosto intuitiva:
  | 
| 
         
  | 
      
| 
           | 
          La procedura Delay è particolarmente curata ed è in grado di prevedere anche un evento piuttosto improbabile ma possibile, data la sua natura, legata alla lettura del tempo corrente: il suo utilizzo a cavallo di un giorno che muore e uno che nasce... | 
| 
     
  | 
  
[**] Nella premessa ho 
  sottolineato che subito dopo la mezzanotte 
  il contatore passa dal valore 001800AFH 
  a 00000000H; 
  si rende indispensabile, quindi, un supplemento 
  d'indagine: in questo caso:
  | 
  | 
| 
      
       |  
    Libreria GiobeASM | 
      
       | 
    Delay 3/3 - Dettaglio sull'Algoritmo ASM | 
    
    ![]()  | 
    
    ![]()  | 
    
    ![]()  | 
 ||
| 30 di 54 | 
      
  | 
    
| 
     
  | 
  
        
  | 
    
        
  | 
    
| 
      
         
        Home 
     | 
      
  | 
    |||||||
      
  | 
       
          
        Motore Ricerca  | 
      
  |