Sezione |
Indirizzi Base
Registri Interni
|
Palestra Livello Apprendisti Livello Esperti |
Programmare in Assembly |
INTRODUZIONE [1 di 23] |
|
|
||
Acquisizione Caratteri - Rileva la pressione di tasti autorizzati e segnala errore per gli altri | ||
Analisi del Codice Sorgente [6 di 6] - il codice assembly per il servizio della pressione dei tasti |
|
In calce alle importanti descrizioni del main loop del Main Program è utile e interessante vedere come si da Servizio alla pressione di un tasto autorizzato. |
|
Il nostro programma differenzia la risposta in funzione del
tipo di tasto autorizzato:
|
|
|
Esercizio |
NB: se il testo nell'Area
ti
sembra strano installa il font Giobe.TTF: clicca qui!! |
|
NB:
Servizio e
Servizio1 non sono
procedure! Una procedura termina sempre con RET mentre questi codici assembly terminano con un salto di rientro (JMP xxx00) al main loop; |
|
Anche se è opportuno collocare Servizio e Servizio1 nella zona destinata ad ospitare le procedure interne è assolutamente importante non incorrere nell'errore di ritenerle tali. |
|
Nonostante l'apparente semplicità di queste piccole parti di codice assembly, esse nascondono alcune magie di particolare valenza. | |||||
Entrambe passano alla
Macro
M_msgC
il parametro indirizzo del testo con
un'espressione del tipo: CS:[SI], che
significa "il contenuto della locazione
puntata da CS:[SI]"; ne possiamo dedurre:
|
|
Faccio notare che sarebbe stata accettata anche un'espressione tipo: CS:[depo], che significa "il contenuto della locazione [depo]"; in questo caso non si sarebbe introdotto un fattore dinamico, ma la possibilità di passare dati da una variabile in vece che da un registro è piuttosto interessante.. |
|
|
A onor del vero la
pseudoistruzione M_msgC
CS:[SI],12,15,1FH non è logicamente
accettabile:
|
|
Anche il Servizio1 merita un commento:
|
|
Palestra Esperti | INTRODUZIONE | |||||||
1 di 23 |
|
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|