Una instrucción Macro es la conveniencia notacional para el programador. Por cada aparición de macro, todo el cuerpo de la macro o el bloque de instrucciones de la macro se expande en el código fuente principal. Por lo tanto, las instrucciones de macro hacen que escribir código sea más conveniente.
Características destacadas del procesador de macros:
- Macro representa un grupo de declaraciones de uso común en el lenguaje de programación de origen.
- El procesador de macros reemplaza cada instrucción de macro con el grupo correspondiente de declaraciones en el idioma de origen. Esto se conoce como la expansión de macros.
- El programador de instrucciones macro puede dejar que los detalles mecánicos sean manejados por el procesador macro.
- Los diseños de Macro Processor no están directamente relacionados con la arquitectura de la computadora en la que se ejecuta.
- Macro Processor implica definición, invocación y expansión.
Definición y expansión de macros:
Line Label Opcode Operand 5 COPY START 0 10 RDBUFF MACRO &INDEV, &BUFADR 15 . . 90 95 MEND
- Línea 10:
RDBUFF (Búfer de lectura) en la parte Etiqueta es el nombre de la Macro o la definición de la Macro. &INDEV y &BUFADR son los parámetros presentes en la parte del Operando. Cada parámetro comienza con el carácter &. - Línea 15 – Línea 90:
Desde la línea 15 hasta la línea 90, el cuerpo de la macro está presente. Las directivas de macro son las declaraciones que forman el cuerpo de la definición de macro. - Línea 95:
MEND es la directiva del ensamblador que significa el final de la definición de la macro.
Invocación de macros:
Line Label Opcode Operand 180 FIRST STL RETADR 190 CLOOP RDBUFF F1, BUFFER 15 . . 255 END FIRST
Línea 190:
RDBUFF es la invocación de macro o llamada de macro que da el nombre de la instrucción de macro que se invoca y F1, BUFFER son los argumentos que se utilizarán para expandir la macro. Las declaraciones que forman la expansión de una macro se generan cada vez que se invoca la macro.
Publicación traducida automáticamente
Artículo escrito por SakshiBhakhra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA