2. MACROS
INTERNAS
Una macro, es un conjunto de instrucciones que se pueden
mandar a llamar desde cualquier parte del programa.
Para definir una macro, se utiliza la directiva MACRO. El formato
de esta directiva es :
(nombre_de_macro) MACRO (lista_parámetros)
Una macro consta de tres partes esenciales:
a) CABECERA: Contiene el nombre de la macro, la pseudo-op
MACRO y opcionalmente, variables ficticias que serán pasadas
desde la macro.
b) CUERPO: Contiene el código real que será insertado en
cualquier programa que llame al nombre de la macro.
c) FIN: Debe incluir la sentencia ENDM.
3. Ejemplo de una macro sencilla:
INICIO MACRO ; Define macro
MOV AX, DATA ; cuerpo de
MOV DS, AX ; la definición
MOV ES, AX ; de la macro
ENDM ; Fin de la macro
El nombre de esta macro es INICIO, aunque es aceptable cualquier otro
nombre válido que sea único. La directiva MACRO en la primer línea indica
al ensamblador que las instrucciones que siguen, hasta ENDM (“fin de la
macro”), son parte de la definición de la macro.
La directiva ENDM termina la definición de la macro. Las instrucciones
entre MACRO y ENDM comprenden el cuerpo de la definición de la
macro. Si su programa realiza frecuentemente funciones de
entrada/salida, las macros ofrecen la facilidad de codificar una sola vez un
conjunto de instrucciones y reutilizar el código cuantas veces desee
dentro de su programa.
4. Internas
Una macro es una pseudo-op que permite el
establecimiento de operaciones únicas en ensamblador o
la inclusión de frecuentes llamadas de código
ensamblador. Una macro también se puede definir como
un grupo de instrucciones repetitivas en un programa que
se codifica sólo una vez y puede utilizarse cuantas veces
sea necesario.
Una macro interna es aquella que se declara y se llaman
dentro del mismo programa.
Una macro interna se declara de la siguiente manera:
Sintaxis:
<Nombre> MACRO [parámetros]
6. Explicación:
Duplica AL ;
Esta es la “llamada” al macro
El ensamblador sustituye cada vez que aparezca la
macro. No es como los procedimientos, que se
“llaman”
SHL AL, 1 ; CALL Duplica .
Cuándo usarlas y cuándo no
1.- Cuando se quiere el código más rápido y no importa
ser repetitivo (código grande)
2.-Cuando se van a generar diversas variantes de
código similar
3.-No cuando se quiere código compacto, evitando
repetir el mismo (en este caso, usar procedimientos).