Sie sind auf Seite 1von 3

Macros

Una macro es un nombre simbólico que damos a una serie de caracteres o a una o más
sentencias. Cuando el ensamblador evalúa cada línea de un programa, si encuentra el nombre
de una macro, la sustituye por el texto de ésta en un proceso que se conoce como "expansión
de una macro", por lo que es evidente que se debería de procurar que las macros más
utilizadas tengan el menor código posible.
En la mayoría de las ocasiones utilizaremos las macros como simples sustitutos de los
procedimientos cumpliendo con las funciones de una simple subrutina, pero una macro es
mucho más que eso, realmente es un lenguaje hermano del ensamblador al que dota de
mayor potencia, usado para mecanizar acciones repetitivas. Cada uno de los tres compiladores
de ensamblador que estamos viendo tienen sus propios lenguajes de macros, todos ellos
diferentes entre sí y con el propio lenguaje ensamblador.
Diferencia entre un procedimiento y una macro
Es que el primero es un bloque de sentencias que se encuentran localizadas en algún lugar
invariable de la memoria al que accedemos cada vez que la llamamos; mientras que una
macro es un conjunto de sentencias que se expanden en el lugar del código donde el
compilador encuentra su nombre como si allí los hubiéramos colocado manualmente. Por
tanto el uso de procedimientos optimiza el tamaño del código, mientras que el uso de macros
optimiza la rapidez de éste, ya que no es necesario meter en la pila el "IP" y recuperarlo
posteriormente.
Ventajas y desventajas del uso de macros.
Ventajas:
• Menor posibilidad de cometer errores por repetición.
• Mayor flexibilidad en la programación al permitir el uso de parámetros.
• Código fuente más compacto.
• Al ser más pequeño el código fuente, también es más fácil de leer por otros.
Desventajas:
• El código ejecutable se vuelve más grande con cada llamada a la macro.
• Las macros deben ser bien planeadas para evitar la redundancia de código.
Donde y como declarar una MACRO
Las macros se definen al inicio de un programa, antes de .MODEL:

Sintaxis:
nombreMacro MACRO [parametros] ;Los parámetros son opcionales.
instrucciones...
ENDM ;Indica fin del macro.
EJEMPLO:

imprime MACRO msg ;DECLARACION DE LA MACRO QUE IMPRIME


mov ah, 09h ;UN MENSAJE A PANTALLA
mov dx, offset msg
int 21h
ENDM

.MODEL SMALL
.STACK 20h
.DATA
msg DB 'SOBRES!$'

.CODE
inicio:
mov ax, @Data
mov ds, ax

imprime msg

mov ah, 08h ;CONSOLE.READKEY()


int 21h

mov ax, 4c00h ;SALIR Y REGRESAR AL DOS


int 21h

end inicio
CONCLUSIÓN:

Las macros nos proporcionan la posibilidad de simplificar el código de los programas.


Solo necesitamos mandar llamar la macro a determinada sección del código para realizar una
tarea específica.

Das könnte Ihnen auch gefallen