| il progetto di una macro risulta conveniente quando nel
sorgente sono evidenti parti di codice (alcune istruzioni)
simili tra loro, cioè
diverse solo per piccoli particolari, di solito numeri binari |
| per la sua definizione si utilizzano le direttive
MACRO
e ENDM,
all'interno delle quali saranno raccolte le istruzioni che si desidera
sostituire con una sola riga di programma; solo la prima
delle 2
direttive sarà
preceduta dal nome scelto per la macro |
| dopo la direttiva MACRO
è possibile (ma non obbligatorio)
passare parametri, cioè predisporre
valori binari sia in forma
immediata che con il nome del
registro o della
variabile che li contiene; questi valori sono destinati a
inizializzare una o più istruzioni interne alla macro |
| in questo modo lo stesso gruppo di istruzioni (racchiuso
nel corpo della macro) può essere adattato
a situazioni di volta in volta diverse |
| in pratica questa opportunità rappresenta la
seconda grande valenza di una
macro: la medesima riga di programma (comunque da noi inventata...) non solo
rappresenta più istruzioni ma
contiene in sequenza anche i valori iniziali
da dare ai vari registri coinvolti dalle medesime istruzioni |
| il compito dell'effettiva inizializzazione spetta al compilatore e
risulta a noi del tutto trasparente (fantastico..) |
| non ci sarà invece alcun vantaggio
dal punto di vista della memoria di programma
necessaria, perchè
il compilatore sostituirà
comunque la riga di programma contenente la nostra
macro con il suo corpo, cioè con le
istruzioni ad essa associate, eventualmente modificate sulla base delle indicazioni
suggerite dagli eventuali parametri |