Macros y procedimientos
INTRODUCCION
Macroensambladores.
Son ensambladores que permiten el uso de macroinstrucciones (macros). Debido a su potencia, normalmente son programas robustos que no permanecen en memoria una vez generado el programa objeto. Puede variar la complejidad de los mismos, dependiendo de las posibilidades de definición y manipulación de las macroinstrucciones, peronormalmente son programas bastantes complejos, por lo que suelen ser ensambladores residentes.
MACROS
Una macro es un conjunto de instrucciones que se agrupan bajo un nombre descriptivo (macroinstrucción) y que sólo es necesario declarar una vez (macrodefinición).
Una vez que la macro ha sido declarada, sólo es necesario indicar su nombre en el cuerpo del programa y el ensamblador se encargarade reemplazar la macroinstrucción por las instrucciones de la macro (expansión de la macro).
El formato general de una macro es el siguiente:
.MACRO Nombre [(parametro1, parametro2, etc.)]
INSTRUCCIONES
ENDM
Lo que se encuentra entre paréntesis cuadrados es opcional.
EJEMPLO
Macro para imprimir una cadena:
.MACRO Imprime_Cad (Cadena)
Lea DX,Cadena
Mov Ah, 09h
Int 21h
ENDM
PARÁMETROSY ETIQUETAS
Dentro de las propiedades más importantes de las macros se deben destacar la posibilidad de utilizar parámetros y etiquetas.
Los parámetros permiten que una misma macro pueda ser usada bajo diferentes condiciones, por ejemplo, se puede crear una macro para posicionar el cursor en diferentes coordenadas de la pantalla e indicar sus coordenadas por medio de parámetros.
EJEMPLO
Lasiguiente macro nos muestra esta propiedad:
Esta macro posiciona el cursor en las coordenadas que se le indican como parámetros. Es el equivalente al GotoXY de Pascal.
.MACRO gotoxy (x,y)
xor bh, bh; Seleccionar página cero de video
mov dl, x ;Columna
mov dh, y ;Renglón
mov ah, 02h ;Función 02h para posicionar cursor
int 10h ;llamada a la int 10h del BIOS
ENDM
También existen situaciones enlas que los parámetros no son necesarios, es por esta razón que los parámetros son opcionales en la declaración de la macro.
EJEMPLO
Esta macro realiza una pausa en el programa hasta que una tecla es presionada. Es el equivalente del readkey en Pascal.
.MACRO tecla
mov ah,10h
int 16h
ENDM
Por otro lado, las etiquetas también son útiles dentro de las macros. Suponga que se desea crear unamacro que imprima una cadena un número n de veces, esta macro podría ser declarada de la siguiente forma:
.MACRO Imprime_nCad (Cadena, Cuantos)
Mov CX, Cuantos; Iniciar Contador
Lea DX, Cadena; Direccionar la cadena que se va a imprimir
Mov Ah, 09h; Usar la función 09h
Otra: ; Etiqueta interna
Int 21h; Imprimir la Cadena n veces
Loop Otra; Siguiente Impresión
ENDM
ENSAMBLE DE MACROS
Unamacro es declarada una sola vez y puede ser llamada cuantas veces sea necesario dentro del cuerpo del programa.
Cada vez que el ensamblador encuentra una macroinstrucción, verifica si ésta fue declarada; si esta verificación es exitosa, el ensamblador toma las instrucciones del cuerpo de la macro y las reemplaza en el lugar donde la macro fue llamada.
VENTAJAS Y DESVENTAJAS
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 laredundancia de código.
PROGRAMACIÓN MODULAR
PROCEDIMIENTOS
Un procedimiento es un conjunto de instrucciones que tienen la finalidad de ejecutar una tarea específica dentro de un programa.
Un procedimiento se declara una sola vez en el código fuente y cuando el programa se ensambla y ejecuta, el procedimiento se coloca en memoria para que pueda ser utilizado por el programa.
Las principales...
Regístrate para leer el documento completo.