Sezione |
Indirizzi Base
Registri Interni
|
Schede del Tutorial |
Le PseudoOperazioni di MASM |
SCHEDA n° 02 [ 06 di 26] |
|
|
Le MacroIstruzioni sono strutture importanti e utili nella programmazione in Assembly; per esse l'assemblatore mette a disposizione numerose pesudoOperazioni: in queste pagine analizziamo solo quelle necessarie per la sua definizione, lasciando al lettore incontentabile la possibilità di consultare la Tabella Analitica, per scoprire le altre. |
|
La MacroIstruzione è definita in questo modo ([#]): il nome della Macro (nell'esempio M_msgN ) è scritto nella colonna delle etichette, seguito dalla PseudoOperazione MACRO, nella colonna dei codici operativi, seguita a sua volta dai parametri della Macro (per la sua natura è irragionevole pensare che non ne abbia...); sulle righe successive sono elencate le istruzioni (corpo) che la Macro è chiamata a rappresentare; infine, dopo di esse la Macro viene chiusa con la pseudoOperazione ENDM. |
|
La definizione delle Macro deve essere fatta per tempo, di solito dopo quella delle costanti, all'inizio del nostro programma sorgente; questo fatto da al programmatore la possibilità di scrivere una sola riga di programma ([@]), al posto di tutte quelle racchiuse nel corpo della macro (nel nostro caso ben 4 istruzioni). | |
Spetta poi all'assemblatore sostituire a sua volta quest'unica riga con quelle effettive, compilando il codice ad esse relativo; quindi in realtà, alla fine, il codice macchina è sempre lo stesso! |
|
Il codice macchina prodotto alla fine dall'assemblatore è, dunque, lo stesso; lo scopo della MACRO non è quindi quello di ridurre il numero di bytes del programma finale ma di rendere più leggibile il sorgente, sostituendo le sequenze ripetitive di istruzioni con una unica macroIstruzione. |
|
L'esempio che segue mostra la definizione
([#])
della
M_msgN
(appartenente alla libreria
Giobe.MAC)
e il codice assembly ([@])
che la chiama:
|
|
Il trattamento riservato dall'assemblatore
alla linea di programma con la Macro è chiaramente visibile nel listato:
| ||||
Alla riga di codice originale (linea 15, alla quale come si vede non corrisponde alcun codice macchina) viene sostituita la sequenza delle 4 linee di codice del corpo della Macro, evidenziate da MASM con un numero (in questo caso 1) indicante il livello di annidamento (se la macro contenesse un'altra macro quest'ultima sarebbe marcata con il numero 2). |
|
L'analisi della figura evidenzia un altro grande vantaggio nell'uso delle Macro: la possibilità di adattare lo stesso gruppo di istruzioni del suo corpo a situazioni di volta in volta diverse; possiamo notare infatti che l'assemblatore ha compilato, al posto della parola Testo, l'indirizzo frase1, passato alla macro come parametro. |
|
Scheda n° 02 | Pseudo Operazioni di MASM | |||||||
Scheda n° 02 - 06 |
|
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|