Você está na página 1de 5

MACROS, PROCEDIMIENTOS Y BIBLIOTECAS.

Macros, procedimientos y bibliotecas ayudan al programador a que sea posible llamar y


utilizar cdigo previamente depurado. Esto acelera el procesa de creacin del programa.
MACROS
Una vez que en una macro se establece la operacin o cdigo, slo necesita ser llamado
el nombre de la macro desde el cuerpo del programa para utilizar el cdigo. Las macros,
se dice que se ejecutan en lnea. Cada vez que se llama una macro en un programa, el
ensamblador copia y pega el cdigo real de la MACRO en el programa, en el lugar del
nombre de la macro.
Las macros pueden ser utilizadas para desarrollar las secuencias de instruccin que no
estn disponibles desde el ensamblador.
Las macros son utilizadas ms frecuentemente para mantener el cdigo que es llamado
muchas vece desde el comienzo de un programa. Este cdigo podra incluir rutinas para
borrar pantalla, control del cursor, operaciones aritmticas y otras operaciones
frecuentemente llamadas.
CONSTITUTCION DE UNA MACRO
La macro tiene tres partes esenciales: una cabecera, un cuerpo y un fin (ENDM). La
cabecera contiene el nombre de la macro, la pseudo-op MACRO, y opcionalmente,
variables ficticias que sern pasadas desde la macro. El cuerpo de la macro contiene el
cdigo real que ser insertado en cualquier programa que llame al nombre de la macro.
El fin de la macro debe incluir la sentencia ENDM. Como ejemplo de uso de macro,
examinaremos el programa de la Figura 1.1. (------------------------PEGAR IMAGEN-------------)
El nombre de la macro es DELAY. Cuando se encuentra en un programa el nombre
DELAY, el ensamblador copia el cuerpo de esta macro en la posicin del programa
donde se encuentra DELAY. La variable ficticia TIME se pasa al registro DX. La
declaracin LOCAL previene mltiples llamadas. El propsito de esta macro es
acumular tiempo para decrementar los contenidos de los registros DX y CX, creando as
un tiempo de retardo cuando se ejecuta el programa. DX sirve como control del paso del
tiempo, y CX ajusta muy bien el retardo.
Una biblioteca de macros
Las macros pueden ser introducidas y utilizadas por un sencillo programa o colocadas
en una biblioteca de macros. Al colocarlas en una biblioteca, ahorran tiempo y trabajo
de depuracin llamando simplemente a la biblioteca en lugar de reescribir cada macro.
Para ilustrar cmo una biblioteca de macros puede aumentar la velocidad a la hora de
desarrollar programas y acortar la cantidad de cdigo que el programador debe escribir,
examinaremos la Figura 1.2. La Figura 1.2 es un programa completo que utiliza varias

macros. El programa borra la pantalla, imprime en su parte superior el mensaje Yo soy


un simple programa de cuenta, y despus visualiza continuamente una cuenta de 0-9 en
el centro de la pantalla. El programa termina la operacin despus de cinco ciclos
completos.
(------------------------PEGAR IMAGEN--------------)
El programa slo visualiza el dgito de menor peso de la cuenta real del registro AL.
Adems, el contador puede tener 45 en AL y slo visualizar un 5 en la pantalla.
Las tres primeras lneas principales del cdigo completan un bit.
La macro CLEARSCREEN borra la pantalla del monitor. CURSOR desplaza el cursor a
la primera lnea y despus sobre 19H (25 espacios) para centrar el mensaje. La macro
PRINTCHAR nombra la variable MESSAGE en la posicin de la cadena que se va a
imprimir.
El siguiente bloque de cdigo es responsable de colocar los nmeros en la pantalla,
como se muestra en la Figura 1.3.
(------------------------PEGAR IMAGEN--------------)
Cuando se llama a PRINTNUM, el dgito de los cuatro bits inferiores de AL es
convertido a un carcter ASCII e impreso en la pantalla.
PROCEDIMIENTOS
Los programas pueden contener muchos procedimientos. Los procedimientos pueden
ser considerados como NEAR (intrasegmento) o FAR (intersegmentos). Estos
procedimientos (sub) pueden ser llamados (CALL) desde el procedimiento (principal).
LA CONSTRUCCIN DE UN PROCEDIMIENTO
La estructura de la mayora de los programas de ensamblador es, aproximadamente, la
misma en lo que se refiere a la colocacin de pilas, datos y segmentos de cdigo.
(------------------------PEGAR IMAGEN--------------)
MYCODE es el nombre del segmento donde residir el cdigo de programa. El nombre
del procedimiento es MYPROC, y tiene un atributo FAR cuando est en el programa
principal. Antes de que finalice el procedimiento (MYPROC ENDP), debe ser facilitado
un RET.
Los atributos NEAR y FAR ayudan al microprocesador a determinar el tipo de
instruccin CALL a generar cundo el procedimiento es requerido. Si el procedimiento
tiene el atributo NEAR, el IP (punto de instruccin) es guardado en la pila; si tiene el
atributo FAR, ambos CS (segmento de cdigo) e IP (punto de instruccin) son
guardados en la pila. Los procedimientos son requeridos con una CALL.

La diferencia entre una macro y un procedimiento NEAR es que, no hay caracteres + en


la salida de impresin. Ya que no se expandieron las macros. Cuando se utiliza una
macro, se expande cada vez que es requerida en un programa. El cdigo real de DELAY
aparece slo una vez, considerando el nmero de CALL al procedimiento.
Ya que los procedimientos no son expandidos con cada uso, los programas escritos con
procedimientos son con frecuencia ms compactos. Los programas que utilizan
procedimientos como subrutinas no se ejecutan en lnea. Tambin, la diferencia en
tiempo puede ser bastante considerable.
Una biblioteca de macros es una coleccin de rutinas sin ensamblar, que residen en un
archivo de cdigo fuente, y una biblioteca de procedimientos es una coleccin de rutinas
ensambladas que residen en un archivo objeto. Las macros son tradas en tiempo de
ensamblamiento (MASM), y la biblioteca de procedimientos es trado en tiempo de
enlace (LINK).
Cundo se selecciona una macro en vez de un procedimiento? Algunas
recomendaciones:

Para rutinas cortas, elegir una macro (las operaciones son ms rpidas, con poco
incremento de longitud de cdigo).
Para rutinas que en un programa, no son llamadas frecuentemente, elegir una
macro.
Si se est creando o experimentando con un programa, utilice una macro (son
ms fciles de crear, editar y llamar).
Si la rutina es larga, elegir un procedimiento (hace ms corto el cdigo fuente).
Si la rutina es llamada muchas veces en un programa, elegir un procedimiento.

[4]

Programacin modular.
Consiste en dividir un programa en unidades ms pequeas, las cuales pueden ser
probadas por separado para despus ser integradas en un programa. Cada mdulo debe
llevar a cabo una sola tarea que debe ser independiente de las que se realizan los dems
mdulos y contenida en su totalidad, con una entrada y una salida. Se lleva a cabo por
medio de procedimientos.
[1]

Las macros ofrecen la facilidad de codificar una sola vez el conjunto de instrucciones y
reutilizar el cdigo fuente cuantas veces se desee dentro del programa.
Cmo definir una macro.

Toda macro debe estar definida entre las palabras clave MACRO y ENDM. El cuerpo
de la macro es el conjunto de instrucciones que se ejecutarn cada vez que la macro sea
invocada.
Una vez definido el nombre de la macro se codifica el cuerpo de sta. Toda macro debe
terminar con la palabra clave ENDM, la cual indica al MASM que est en el punto final
de la macro y de hecho cierra la definicin. Una diferencia importante entre macro y
subrutina es que la primera se expande, en tanto que la segunda es un conjunto
reutilizable de instrucciones. En una rutina el cdigo se encuentra fijo en alguna parte
de la memoria; cuando el programa respectivo invoca a la rutina se ejecutan dichas
instrucciones y el control regresa a la siguiente instruccin que ser ejecutada.
La principal utilidad de las macros es hacer ms legibles los programas.
[3]

El uso de una declaracin macro no resulta en un ahorro de posiciones de memoria pero


s un ahorro de tiempo de programacin. Las macros deben definirse antes de ser
utilizadas. La forma de definir una macro es la de encerrar la secuencia de instrucciones
simblicas con las seudo-operaciones .MACRO y .ENDM.
Con cada llamada del macro (orden del macro), el cuerpo del macro es sustituido en
lugar del nombre del macro, podemos observar en la Figura 1.6:
(------------------------PEGAR IMAGEN--------------)

(-------Conclusiones------)
Macros, procedimientos y bibliotecas realizan muchas de las mismas funciones. Ello
permite al programador escribir y depurar cdigo una vez que se utilice ese cdigo en
cualquier programa. Esto hace la programacin ms eficiente y modular,
promocionando un estilo de programacin modular.
Algunas de las ventajas de las macros:
1. Las macros son rpidas porque se ejecutan en lnea en un programa
2. Pueden pasar y recibir parmetros que afecten slo la operacin de las mismas.
3. Pueden ser guardadas en una biblioteca en cdigo fuente, que puede ser
fcilmente editada.
Desventajas: las macros hacen ms grande el cdigo fuente, ya que son expandidas cada
vez que son llamadas.

Ventajas de la biblioteca de procedimientos: los procedimientos permiten un cdigo


fuente corto, ya que los procedimientos no son expandidos.
Desventajas de la biblioteca de procedimientos: los procedimientos hacen ms lenta la
ejecucin del programa, ya que con cada CALL la computadora debe dejar el cdigo
principal y bifurcar a otra parte de cdigo.

Você também pode gostar