|
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 |
|