Modularizacion

Solo disponible en BuenasTareas
  • Páginas : 5 (1131 palabras )
  • Descarga(s) : 0
  • Publicado : 16 de diciembre de 2009
Leer documento completo
Vista previa del texto
Modularizacion
Una de las principales desventajas de la programación en lenguaje ensamblador es la repetición constante de ciertos grupos de instrucciones
Debido a esto existen algunos problemas por ejemplo cada vez que querramos escribir algo en pantalla el código se repetirá y será mas grande entonces si se produce un error será muy difícil de localizar.la solución a esto es una macro.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 macro es un grupo de instrucciones repetitivas en un programa que se codifican solo una vez y pueden utilizarse cuantas veces sea necesario.

Una vez que la macro ha sido declarada, sólo es necesario indicar su nombre en el cuerpodel programa y el ensamblador se encargara de 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)]
Diferencias entre macro y procedimiento
La principal diferencia entre una macro y un procedimiento es que en la macro se hace posible el paso de parámetros y en elprocedimiento no
Podemos decir entonces que un procedimiento es una extensión de un determinado programa, mientras que la macro es un módulo con funciones específicas que puede ser utilizado por diferentes programas.
La forma de llamar a cada uno, para llamar a un procedimiento se requiere el uso de una directiva, en cambio la llamada a las macros se realiza como si se tratara de una instrucción delensamblador.

Sintaxis de la macro
Las partes que componen a una macro son:
Declaración de la macro
Código de la macro
Directiva de terminación de la macro
La declaración de la macro se lleva a cabo de la siguiente forma:
NombreMacro MACRO[parametro1, parametro2...]
Aunque se tiene la funcionalidad de los parámetros es
posible crear una macro que no los necesite.
La directiva de terminación de lamacro es: ENDM

Las macros son útiles para los siguientes propó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.

Desventajas:
 El código ejecutable se vuelve más grande con cada llamada a la macro.
 Las macros deben ser bien planeadaspara evitar la redundancia de código.
Una definición de macro aparece antes de que cualquier definición de segmento.
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.
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ón del mismo nombre en el cuerpo de la macro.
DESPLEGAR_MSG MENSAJE2 En este caso, MENSAJE2 tiene que estar apropiadamente definido en el segmento de dato.
MANEJO DE ETIQUETAS LOCALES.
Algunas macrosnecesitan que se definan elementos de datos y etiquetas de instrucciones dentro de la definición de la macro. Si utiliza la macro mas de una vez en el mismo programa y el ensamblador define los elementos de datos para cada aparición, los nombres duplicados harían que el ensamblador genere un mensaje de error. Para asegurar que cada nombre generado es único, hay que codificar la directiva LOCALinmediatamente después de la instrucción MACRO. Su formato general es:
LOCAL Etiqueta1, Etiqueta2...Etiquetan.
3.1.2 Externas
El enfoque habitual es catalogar las macros en una biblioteca en disco bajo un nombre descriptivo, como MACRO.LIB. Usted solo tiene que reunir todas las definiciones de sus macros en un archivo y almacenar el archivo en disco:
Macro1 MACRO
....
ENDM
Macro2 MACRO
.......
tracking img