Macros

Páginas: 10 (2339 palabras) Publicado: 18 de mayo de 2010
| |

Macros

INTRODUCCION.

Para cada instrucción simbólica que usted codifica, el ensamblador genera una instrucción de lenguaje de maquina. El ensamblador tiene facilidades que el programador puede utilizar para definir macros.Primero hay que definir un nombre específico para la macro, junto con el conjunto de instrucciones en lenguaje ensamblador que la macro va a generar. Después, siempre que necesite codificar el conjunto de instrucciones, solo hay que codificar el nombre de la macro y el ensamblador genera de forma automática las instrucciones que han sido definidas en la macro. Las macros son útiles para los siguientespropósitos:

• Simplificar y reducir la cantidad de codificación repetitiva. • Reducir errores causados por la codificación repetitiva. • Linealizar un programa en lenguaje ensamblador para hacerlo mas legible.

DEFINICION DE UNA MACR .
Una definición de macro aparece antes de que cualquier definición de segmento.

Examinemos una definición de una macro sencilla que inicializa los registrosde segmento para un programa.EXE:

INICIAREGS 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 INICIAREGS, aunque es aceptablecualquier otro nombre valido 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. Los nombres a que se hace referencia en la definición de la macro, @data, AX, DS y ES, deben estar definidos en alguna parte del programa odeben ser dados a conocer de alguna otra forma al ensamblador.

En forma subsecuente se puede usar la macro-instruccion INICIAREGS en el segmento de código en donde quiera inicializar los registros. Cuando el ensamblador encuentra la macra-instruccion INICIAREGS, busca en una tabla de instrucciones simbólicas y, a falta de una entrada, busca macroinstrucciones. Ya que el programa contieneuna definición de la macro INICIAREGS, el ensamblador sustituye el cuerpo de la definición generando instrucciones: la expansión de la macro. Un programa usaría la macroinstruccion INICIAREGS solo una vez, aunque otras macros están diseñadas para ser utilizadas cualquier numero de veces y cada vez el ensamblador genera la misma expansión.

MANEJO DE PARAMETROS.

Para hacer una macro flexible,puede definir nombres en ella como argumentos mudos (ficticios).La definición de la macro siguiente, llamada DESPLEGAR_MSG, proporciona el uso de la función 09H del DOS para desplegar cualquier mensaje. Cuando se usa la macroinstrucción el programador tiene que proporcionar el nombre del mensaje, el cual hace referencia a un área de datos terminada por un signo de dólar.

DESPLEGAR_MSG MACROMENSAJE; Argumento mudo

MOV AH, 09H
LEA DX, MENSAJE
INT 21H
ENDM  ; Fin de la macro

Un argumento mudo en una definición de macro indica al ensamblador que haga coincidir su nombre con cualquier aparicióndel mismo nombre en el cuerpo de la macro. Por ejemplo, el argumento mudo MENSAJE también aparece en la instrucción LEA. Cuando utiliza la macroinstrucción DESPLEGAR_MSG, usted proporciona un parámetro como el nombre real del mensaje que será desplegado, por ejemplo:

DESPLEGAR_MSG MENSAJE2

En este caso, MENSAJE2 tiene que estar apropiadamente definido en el segmento de dato. El...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Macro
  • macros
  • Macro
  • macro
  • Macro
  • Macro
  • Macro
  • Macro

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS