Sie sind auf Seite 1von 11

MACROS

Macros
Una macro es un grupo de instrucciones repetitivas en
un programa que se codifican solo una vez y pueden
utilizarse cuantas veces sea necesario. La principal
diferencia entre una macro y un procedimiento es que
en la macro se hace posible el paso de parmetros y en
el procedimiento no (esto es aplicable solo para el
TASM, hay otros lenguajes de programacin que si lo
permiten). Al momento de ejecutarse la macro cada
parmetro es sustituido por el nombre o valor
especificado al momento de llamarla.

Una macro es un grupo de instrucciones que efectan


una tarea. Al ser llamada se inserta en el programa
como nuevo cdigo que contiene una secuencia de
instrucciones. Se utilizan las directivas MACRO y ENDM
para delimitar una macrosecuencia.
El primer enunciado de una macro es el que contiene el
nombre y sus parmetros relacionados con ella. Por
ejemplo TRANSF MACRO A,B que define la macro
TRANSF. El ltimo enunciado de una macro es la
instruccin ENDM que es una lnea por s sola. Es
necesario definir la macro antes de utilizarla. Una macro

Variable local en una macro.


Es aquella que aparece dentro del cuerpo de la macro,
pero no est disponible fuera de ella. Para definir una
variable local se utiliza la directiva LOCAL. Se puede
utilizar para declarar etiquetas de saltos que requieren
ser llamados varias veces y evita que marque error al
expandir la macro.

Parmetros Formales y
Parmetros Actuales
Cuando se llama a una macro se le pueden pasar opcionalmente
un cierto nmero de parmetros de cierto tipo. A estos
parmetros se le denominan parmetros actuales. En la
definicin de la macro, dichos parmetros aparecen asociados a
ciertos nombres, cuya nica funcin es permitir distinguir unos
parmetros de otros e indicar el orden en que son entregados,
estos son los parmetros formales. Al expandir la macro los
parmetros formales son sustituidos por sus parmetros
actuales.
Es una buena prctica utilizar PUSH y POP al inicio y al final de
las MACROS para mantener los valores de los registros, en caso
de ser necesario.

Si se indican ms parmetros de los que una macro


necesita, se ignorarn los restantes. En caso de faltar se
dar un mensaje de advertencia o error, dependiendo
del ensamblador. Como buena prctica se debe evitar.

Operadores
Operador ;;
Indica que lo que viene a continuacin es un comentario que no debe
aparecer al expansionar la macro. Cuando al ensamblar se genera un
listado del programa, las macros suelen aparecer expandidas en los
puntos en que se invocan; sin embargo slo aparecern los
comentarios normales que comiencen por (;). Los comentarios
relacionados con el funcionamiento interno de la macro deberan ir con
(;;), los relativos al uso y sintaxis de la misma con (;). Esto es adems
conveniente porque durante el ensamblaje son mantenidos en
memoria los comentarios de macros (no los del resto del programa)
que comienzan por (;), y no conviene desperdiciar memoria.

Operador &
Utilizado para concatenar texto o smbolos. Es necesario
para lograr que el ensamblador sustituya un parmetro
dentro de una cadena de caracteres o como parte de un
smbolo:

Operador ! o <>
Empleado para indicar que el carcter que viene a
continuacin debe ser interpretado literalmente y no
como un smbolo. Por ello, !; es equivalente a <;>.
Operador %
Convierte la expresin que le sigue -generalmente un
smbolo- a un nmero; la expresin debe ser una
constante (no relocalizable). Slo se emplea en los
argumentos de macros.

Directivas PUBLIC y
EXTRN(EXTERN)
La directiva PUBLIC se suele colocar en el campo de cdigo
de un enunciado para definir que una etiqueta es pblica, a fin
de poder emplearla en otros mdulos. Esta etiqueta puede ser
una direccin para salto, una direccin de datos o todo un
segmento. Cuando los segmentos se hacen pblicos se
combinan con otros segmentos pblicos que contienen datos
con el mismo nombre del segmento.
La directiva EXTRN aparece en los segmentos de datos y de
cdigo para definir que las etiquetas son externas al segmento.
Si se define que los datos son externos, su tamao se debe
expresar como BYTE, WORD o DWORD. Si una direccin para
salto o para llamada son externas, se deben representar como
Cercana(NEAR) o Lejana(FAR).

Ejemplo

Das könnte Ihnen auch gefallen