Macroprocesadores
Los ensambladores y compiladores cuentan con macroprocesadores. Estos permiten definir una abreviatura para representar una parte de un programa y utilizar esa abreviatura cuantas veces sea necesario, esto evita redundar código al programador, partes repetibles de programa.
Para utilizar una macro, primero hay que declararla. En la declaración se establece el nombre que se le dará a la macro y el conjunto de instrucciones que representará. Ejemplo:
MI MACRO
JMP 0
JMP 1
ENDM
La declaración se realiza una sola vez, pero la utilización o invocación a la macro (macrollamada) puede hacerse cuantas veces sea necesario. La utilización de macros posibilita la reducción del tamaño del código fuente, aunque el código …ver más…
La tabla de nombres de macros (TABNOM).
La tabla de código de macros (TABDEF).
La tabla de argumentos (TABARG).
Ahí se guarda toda la información pertinente a las macros, mientras el ensamblador analiza la expansión y hace la traducción a código objeto. A veces hay confusión entre macros y subrutinas. Subrutinas son rutinas comunes en el programa se accede a ellas haciendo llamados a estas, son normalmente usadas para rutinas mas complejas donde el retorno de llamada tolerada.
Macros es comúnmente usado para rutinas mas simples o donde la velocidad de en código de linea es requerida. Para poder utilizar una macro este debe ser definida esta debe ser dentro del programa fuente.
La macrodefinicion consta de 3 partes estas son:
la macro cabecera que especifica el macro nombre y su lista de parámetro el macro cuerpo que es la parte que es insertada actualmente dentro el programa de fuente
el macro terminador la cabecera se tiene de la siguiente forma: name MACRO
El nombre del campo contiene un simbolo unico que el usado para identificar la macro.
Tenemos 2 definiciones de terminación de macros: ENDM y EXITM, toda definición de macro debe tener un ENDM para notificar al ensamblador que la definición de macro ha terminado, EXITM es alternativa para usos de final de macros que son usadas con ensambles condicionales, cuando EXITM es encontrado en un programa las declaraciones de ENDM son ignoradas.