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 Problema · Main Loop · Tipi di Tasto · Rilievo tasti · Caps Lock · Servizio tasti · Conclusioni

Acquisizione Caratteri - Rileva la pressione di tasti autorizzati e segnala errore per gli altri
Analisi del Codice Sorgente [3 di 6] - Servizio tasti funzione e tasti funzionali

               

bulletMa torniamo al Main Program dell'esercizio EsE008.ASM; per non appesantire la spiegazione ho evitato di coinvolgere tutti i tasti possibili, limitandomi a rilevarne 2 o 3 per ogni singola categoria.

  

Suggerimento Quali tasti vanno cercati per primi?  La risposta a questa domanda e il futuro rispetto delle conseguenti regole rende perfetto il servizio della pressione di tasti.

  

bulletNon appena il compito della KEYwait ha termine, dopo la pressione di un tasto qualunque, la coppia di registri AL/AH contiene il loro codici Ascii/scansione.
bulletLa prima cosa da fare è controllare (CMP AL,00H) se il codice Ascii del tasto premuto è nullo:

  

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

  

  se è così (AL=00H) si tratta di un tasto funzione o di un tasto funzionale: il nostro codice prosegue con l'istruzione successiva, affidando la possibilità di riconoscere il tasto al contenuto del registro AH: solo tramite il codice di scansione è possibile infatti risalire al tasto giusto; nel nostro esempio è ammessa la pressione solo di 4 dei 22 possibili: i tasti Funzione F1 e F10 e i tasti Funzionali FrecciaSinistra e FrecciaDestra

  

  se non è così (AL<>00H) si tratta di un tasto standard: il nostro codice prosegue a livello xxx01 (JNZ xxx01), affidando, come vedremo nella pagina successiva, la ricerca al contenuto del registro AL: ognuno dei possibili tasti sarà caratterizzato dal codice Ascii corrispondente alla scritta che porta su di se; il codice di scansione è in questo caso del tutto irrilevante!

  

bulletDesidero farti notare una tecnica di programmazione che potrà tornarti utile anche in altre occasioni: avrai certamente notato che, prima di confrontare i dati a disposizione (AL e AH) con quelli del tasto atteso, viene caricato il puntatore SI (LEA SI,<etichetta_indirizzo>) con l'istruzione LEA:
bulletquesto artificio consente di utilizzare un unico servizio (JZ Servizio) per tutti i tasti autorizzati: spetterà ad essa differenziare il compito per ciascuno di essi, proprio in funzione del valore predisposto di volta in volta nel puntatore (della serie: prevenire piuttosto che combattere!)
bulletnaturalmente si sarebbe potuto allestire un servizio distinto per ciascuno dei tasti autorizzati, ma è facile rilevare che sarebbero stati tutti uguali, a meno appunto del puntatore di stringa (cosa da evitare, in sintonia con la regola secondo la quale se si notano tratti di programma simili tra loro c'è qualcosa che non va...).

    

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