Publicidad

viernes, 30 de mayo de 2008

MACROS EN ENSAMBLADOR


hola a todos pues me encontre este pequeño ejemplo de una macro en ensamblador para recordar un poco lo que se vio en arquitectura de computaoras II, bueno para aquellos que hicieron macros porque en lo particular no las vimos saludos que tengan bonito dia.

Definición de una macro
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 parámetros y en el procedimiento no (esto es aplicable solo para el MASM, hay otros lenguajes de Programación que si lo permiten). Al momento de ejecutarse la macro cada parámetro es sustituido por el nombre o valor especificado al momento de llamarla.
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.
Otra diferencia entre una macro y un procedimiento es 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 del ensamblador.

Sintaxis de una 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 parametros es posible crear una macro que no los necesite.
La directiva de terminación de la macro es: ENDM

Un ejemplo de macro, para colocar el cursor en alguna posición determinada de la pantalla es:

Posicion MACRO Fila, Columna

PUSH AX

PUSH BX

PUSH DX

MOV AH, 02H

MOV DH, Fila

MOV DL, Columna

MOV BH, 0

INT 10H

POP DX

POP BX

POP AX

ENDM

Para utilizar una macro solo es necesario llamarla por su nombre, como si fuera una instrucción mas del ensamblador, ya no son necesarias las directivas como en el caso de los procedimientos.

  • Ejemplo: Posicion 8, 6

Bibliotecas de macros
Una de las facilidades que ofrece el uso de las macros es la creación de bibliotecas, las cuales son grupos de macros que pueden ser incluidas en un programa desde u archivo diferente.

La creación de estas bibliotecas es muy sencilla, unicamente tenemos que escribir un archivo con todas las macros que se necesitarán y guardarlo como archivo de texto.

Para llamar a estas macros solo es necesario utilizar la instrucción Include NombreDelArchivo, en la parte de nuestro programa donde escribiriamos normalmente las macros, esto es, al principio de nuestro programa (antes de la declaración del modelo de memoria).
Suponiendo que se guardó el archivo de las macros con el nombre de MACROS.TXT la instrucción Include se utilizaría de la siguiente forma:

;Inicio del programa

Include MACROS.TXT

.MODEL SMALL

.DATA

;Aqui van los datos

.CODE

Inicio:

;Aqui se inserta el código del programa

.STACK

;Se define la pila

End Inicio

;Termina nuestro programa

1 comentario:

JoseFGC dijo...

Hablando de ensamblador, las macros deven ser una gran ayuda puesto que para mi es de verdad chocante el programar en ensamblador.