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

Palestra Livello Apprendisti Livello Esperti

Home » Programma il Computer » Tutorial Assembly

Palestra Assembly - Home Page

  Programmare in Assembly

INTRODUZIONE [1 di 23] 

               

Analisi del Codice · Conclusioni

Acquisizione Caratteri - Rileva la pressione di soli Tasti Numerici e li visualizza in tastiera
Analisi del Codice Sorgente [3 di 4]

               

bulletCome hai potuto rilevare il compito di accendere e spegnere il numero, dentro la tastierina a video, è affidato ad una sottoprocedura specializzata; vediamone i dettagli:

  

Gestione della Tastiera

Esercizio IMPEGNATIVO Esercizio
NB: se il testo nell'Area  ti sembra strano
     
installa il  font
Giobe.TTF: clicca qui!!
Mostra l'Effetto Prova l'eseguibile COM Scarica il codice Sorgente ASM

  

bulletAnche questa è particolarmente geniale; deve la sua dinamicità alla creazione di una Tabella, definita con le altre variabili nella Zona ad esse destinata:

  

  

Suggerimento L'uso di Tabelle, se pensate con serenità ed acume, è uno strumento potentissimo, in grado di rendere dinamica qualunque struttura.

  

bulletLa mia Tabella prevede una voce di 3 bytes per ognuno dei tasti numerici, annotando di seguito il rispettivo codice ascii e le coordinate di riga e di colonna dentro la tastierina a video; in questo modo è possibile piazzare al posto giusto qualunque carattere, indipendentemente dal suo numero...

  

bulletMa vediamo con più calma questo algoritmo:

  

bulletin ingresso in AL c'è il codice ascii numerico decimale, letto da Keywait, un byte certamente compreso tra '0' (=30H) e '9' (=39H)
bulletaffida a DI (LEA DI,Tab_Num) il compito di puntare la Tabella
bulletprepara il moltiplicatore AH (MOV AH,3), per tener conto che ciascuna voce della Tabella ha 3 bytes
bulletprepara il moltiplicando, trasformando (SUB AL,'0') in AL il codice ascii numerico passato in ingresso (tra '0' e '9') in numero binario (tra 00H e 09H)
bulletprepara in AX (MUL AH) un numero binario progressivo proporzionale al tasto numerico premuto: il prodotto sarà certamente un numero multiplo di 3
bulletprepara il puntatore (ADD DI,AX) alla voce della Tabella che corrisponde al tasto numerico premuto
bulletrecupera la coordinata di riga (MOV DH,CS:[DI+1]) e di colonna  (MOV DL,CS:[DI+2]) del punto della tastierina a video in cui stampare il carattere ascii corrisponde al tasto numerico premuto
bulletfissa dinamicamente la posizione di stampa (M_CURSOR DH,DL) e stampa il carattere (CALL BIOchr1) con il colore predisposto in ingresso nella variabile locale [ATTRIB], quindi o spento (08H, grigio su nero) o acceso (0FH, bianco brillante su nero).

  

bulletUna vera bomba!!

    

Pagina Precedente Palestra Esperti Pagina Successiva INTRODUZIONE   Torna alla Home  della Palestra Assembly Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
1 di 23
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

    

PALESTRA » Esperti » Es.001 Es.002 Es.003 Es.004 Es.005 Es.006 Es.007 Es.008 Es.009 Es.010 Es.011

| Che serve per iniziare | Prima compilazione | Livello Apprendisti |

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