|
 |
Programmare in Assembly |
Esercizio n° E003 3/5
[15 di 57] |
 | Per esempio, per fare quello che erroneamente avrebbe fatto
lo stralcio di codice presentato nella pagina precedente, cioè per mettere una
lettera "A" di colore giallo su sfondo blu
(1EH) nel punto di coordinate riga=23
e colonna=1, si deve scrivere questa
sequenza di istruzioni: |
 | Osservando il codice notiamo che esso consente di stampare un carattere
nel modo più versatile possibile; ma notiamo anche che per esercitare questo
servizio non possiamo fare a meno di eseguire
comunque tutte e 4 le istruzioni. |
 | E' la classica situazione in cui conviene
definire una
macro, cioè metterci nelle condizioni di:
 | sostituire
4 istruzioni
con
una sola (seppur pseudoistruzione)
e di... |
 | disporre della possibilità di passarle tutto quello che
serve tramite i parametri. |
|
 | Dopo le infinite volte
che ti ho proposto il link che descrivono questa struttura saprai bene
come di definisce
una macro... |
 | Le
macro istruzioni non sono vere istruzioni,
ma servono per rendere più leggibile il codice finale:
 | con una sola riga di
programma si può ottenere l'effetto di 2 o più istruzioni effettive |
 | la loro magica natura ci consente l'uso
dei parametri, cioè possiamo
specificare alcuni valori utili direttamente nella riga che le
richiama, lasciando al compilatore il compito di associarli ai giusti
registri. |
|
 |
Poichè hai un'occasione unica
stacca immediatamente gli occhi dal video e
prova a scrivere la tua prima macro...
Quando hai finito, controlla se hai fatto bene, qui sotto... |
 | Ecco la risposta; quella descritta qui
sotto potrebbe fare al caso nostro; per essa abbiamo scelto il nome
M_Chr : |
 | Rimane il problema di dove
inserire questo codice; ognuno dei miei sorgenti ha,
all'inizio, una
zona delle macro, di solito di questo aspetto |
 |
Le direttive
if1...endif obbligano
l'assemblatore a tener conto del contenuto del file
Giobe.MAC,
aggiunto in toto al nostro sorgente; se
vogliamo inserire una nostra nuova macro, da coinvolgere con le altre nel
processo di compilazione, la dobbiamo inserire subito prima della direttiva
endif;, esattamente come
mostra la prima delle due precedenti
caselle di testo. |
 | In questo modo sarà processata con le altre al momento giusto. |
 | Data la sua probabile utilità ho già comunque provveduto ad
inserirla nella raccolta
Giobe.MAC,
per cui non è necessario inserirla nella
zona delle macro;
la sua scheda è disponibile a questo link:
M_Chr. |
 | La
sintassi prevista per questa nuova macro
prevede dunque 4 parametri (carattere,riga,colonna,colore)
e la riga seguente mostra come dovrà
essere chiamata, nel
programma sorgente: |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|