Macros

Solo disponible en BuenasTareas
  • Páginas : 6 (1253 palabras )
  • Descarga(s) : 0
  • Publicado : 29 de abril de 2010
Leer documento completo
Vista previa del texto
MACROS Definición
¿Qué es una macro?
La mayoría de los programas ejecutan comandos de instrucciones repetitivas. Por ejemplo, para desplegar un mensaje es necesario ejecutar cierto número de instrucciones, por ejemplo:
MOV DX, offset Mensaje
MOV AH 09H
INT 21H
Si un programa realiza muchas funciones de entrada/salida, puede resultarle tedioso tener que codificar lasinstrucciones cada vez que se desea desplegar o leer algo. Las macros ofrecen la facilidad de codificar una sola vez el conjunto de instrucciones y reutilizar el código cuantas veces se desee dentro del programa.
¿Cómo definir una Macro?
La definición de una macro, siempre requiere un formato específico. Dicho formato es:
Nombre_de_la_Macro MACRO [parámetro1, parámetro2, . . . , parámetros][LOCAL lista de etiquetas]
CUERPO DE LA MACRO
ENDM
Es decir, toda macro debe estar definida entre las palabras Macro y EndM. El cuerpo es el conjunto de instrucciones que se ejecutarán cada vez que la macro sea invocada.

Ejemplo 1:
CLRSCR MACRO
PUSH AX
PUSH BX
MOV AH, 15
INT 10H
POP BX
POP AX
ENDM
Parámetros y Etiquetas La lista de parámetros es opcional, ysi existe, cada parámetro deberá ser separado por una coma. Cuando se invoca la macro, los parámetros son reemplazados por los nombres o valores que especifique la instrucción que la invoco. La expansión del código se lleva a cabo durante la primera fase (recorrido) del ensamblador.
Es obvio que las etiquetas que aparecen en una macro pueden entrar en conflicto con las que aparecen en elprograma expandido, ocasionando esto, que se pueda repetir alguna etiqueta. Para evitar este problema se utiliza el pseudooperador LOCAL seguido por una lista de etiquetas que contiene todas las etiquetas que son propias de la macro. Al momento del ensamblado, se asignan a todas ellas nombres únicos que no entren en conflicto con el de otras etiquetas. Este proceso se repite sin importar el número deveces que el macro se expanda ni de cuantos otros macros aparezcan. El uso de LOCAL es optativo y depende si se tiene o no la necesidad de hacer que las etiquetas sean locales.
La siguiente tabla muestra los pseudooperadores para el manejo de macros. La proposición de macros puede estar contenida en el programa que las utiliza o separadamente en una biblioteca de macros, la cual se carga como sedescribirá posteriormente. Los macros permiten el uso múltiple de una secuencia de código, con un cambio cada vez, como cuando utiliza una lista de parámetros. La pseudooperador PURGE permite eliminar una macro que no se utilice en una biblioteca, una vez que esta ha sido cargada. Un uso alternativo de la pseudooperador PURGE podría emplearse para unir bibliotecas de macros, para una clase deaplicaciones determinadas como: gráficos, I/O en disco, etcétera.
La siguiente tabla, muestra los pseudo operadores de macros.
La siguiente tabla, muestra los macro operadores de propósito especial.
Una biblioteca de macros, son grupos de pseudooperadores MACRO, cada uno conteniendo instrucciones en ensamblador que serán insertadas en el archivo del programa durante el ciclo 1 de ensamblado.Supóngase que se genera una biblioteca de macros llamada MC1LIB.LIB que contenga los macros a ser incluidos en el programa. La primera secuencia de instrucciones sería:
IF1
INCLUDE MAC1LIB.LIB
ENDIF
Esta secuencia hará que el ensamblador, durante el ciclo 1, sustituya los macros utilizados en el programa en los puntos apropiados del código. De aquí que el uso de macros aumente eltamaño del programa. La forma de la proposición IF (que es un pseudo operador condicional) en la secuencia anterior proporciona solamente una respuesta condicional durante el ciclo1.

Aplicaciones de los macros Para mostrar las aplicaciones de los macros, se realizarán ejemplos, mostrando de una manera más práctica las aplicaciones de los mismos.
Ejemplo 2:
Realizar una macro...
tracking img