Sezione

Indirizzi Base Registri Interni
Area Comunicazione BIOS Funzioni BIOS Funzioni DOS
Prefazione Capitolo 1 Capitolo 2 Schede
Libreria ASM Libreria MAC Palestra Progetti ASM
Info Download INDICE

Libreria GIOBE.ASM

Home » Programma il Computer » Tutorial Assembly

Raccolta di Procedure

  Raccolta di Procedure ASM

Delay 1/3 [28 di 54] 

    

            1° dicembre 2003
bulletGenera un ritardo programmabile, multiplo di 54,925493 ms, in funzione del numero passato in ingresso.
bulletIl ritardo minimo di circa 55 ms può costituire una limitazione: in certe applicazioni può effettivamente risultare troppo grande; in compenso i ritardi generati sono precisi, affidabili e soprattutto portabili (cioè completamente svincolati dalla velocità del processore e consumabili in modo uguale su tutti i computer), anche con i più moderni sistemi operativi  (Windows 2000/NT/XP).

  

bulletSulla base di questa Procedura ho reso disponibili anche le Del_100, Del_1000, Del_1500 e Del_2000, pronte a consumare rispettivamente 0,1s, 1s, 1,5s e 2s; la Procedura DelMicro assicura, inoltre, ritardi dell'ordine del µs e del ms.

 

bulletLa Procedura si chiama in questo modo:

               

  

bulletIn ingresso bisogna predisporre:
bulletCX con il numero di ritardi standard da 55ms da eseguire; con CX=18 viene generato un ritardo di 55ms*18= 1 secondo

 

bulletLa seguente Area di Testo mostra il Modulo varie07 utilizzato per inserire la Procedura nella Libreria Giobe.ASM/LIB:

               

Delay / varie07

NB:           se il testo contenuto nell'Area   ti sembra strano (cioè se contiene
 caratteri inconsueti) non hai ancora installato il font
Giobe.TTF : clicca qui!!

               

bulletL'analisi del codice (puoi scorrerlo con la barra laterale) mette in evidenza la tecnica utilizzata per garantire il ritardo con esattezza:
bulletcon l'aiuto della Funzione 00H dell'INT 1AH Bios, legge il contenuto delle 4 locazioni di sistema da 0000:046CH a 0000:046FH, contenenti il numero corrente (a 32 bit) dei Ticks prodotti nell'arco della giornata
bulletne controlla poi, più volte, il valore fino al momento in cui viene raggiunto il quello nuovo, che tiene conto del ritardo desiderato.
bulletdata la particolare struttura dell'algoritmo ho approntato una nuova (dicembre 2003) pagina con l'analisi più dettagliata.

               

Suggerimento I problemi legati alle procedure di ritardo sono concreti e pressanti: in ogni caso sembrano ora tutti risolti, con il ricorso al Timer di Sistema, un componente di vitale importanza per il funzionamento del Computer. Ad essi ho dedicato la pagina seguente.

               

bulletLa nostra Procedura, a partire da un dato a 16 bit (praticamente affidato al registro CX), è in grado di generare tempi di ritardo da un minimo di 54,925493 ms ad un massimo di 216*54,925493ms = 65536*54,925493ms = 3599597ms, pari a 3600s, cioè circa 60 minuti, cioè 1 ora!

               

bullet Su questa base è possibile compilare la Tabella dei valori con i quali è possibile caricare il  registro CX:

ritardo Delay ritardo Delay ritardo Delay
1 55 ms 16 879 ms 920 50 s
2 110 ms 17 934 ms 1092 1 m
3 164 ms 18 1 s 2294 2 m
4 219 ms 27 1,5 s 3277 3 m
5 274 ms 36 2 s  4370 4 m
6 329 ms 45 2,5 s 5462 5 m
7 384 ms 54 3 s 6554 6 m
8 439 ms 63 3,5 s 7647 7 m
9 494 ms 73 4 s 9831 9 m
10 549 ms 82 4,5 s 10964 10 m
11 604 ms 91 5 s 21848 20 m
12 659 ms 182 10 s 32771 30 m
13 714 ms 364 20 s 43695 40 m
14 769 ms 546 30 s  54619 50 m
15 824 ms 728 40 s 65536 1 h

    

Pagina Precedente Libreria GiobeASM Pagina Successiva Delay 1/3   Torna alla Home  del Capitolo3 del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
28 di 54
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54

    

Giobe.ASM » SET_cur | VIA_cur | RIP_cur | BIOScls| BIOSchr |BIObeep |Acapo| BIOchr1| STAsp| BIOSmsg
Byt2Asc | Wor2Asc | Asc2Byt | Asc2Wor | Byt2Dec | Wor2Dec | Dec2Byt | Dec2Wor
Delay | DelMicro | Del_2000 | Del1500 | Del_1000 | Del_100 | Del_1 | Del500Mi | Del200Mi
Del100Mi | Del010Mi | RIEMPI | KEYwait | Random | INstrin | CambiaCol | MODEtest
RAMchr | RAMcur | RAMmes | RAMcls | RAMcorn | RAMpiu | RAMrecup | RAMbyte | RAMword
TUTORIAL » Indirizzi Base | Registri Interni | Area Comunicaz. BIOS | Funzioni BIOS | Funzioni DOS
Prefazione | CAP 1 | CAP 2 | Schede | Palestra
Libreria ASM | Libreria MAC | Progetti ASM | Download | Info | Indice
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati