macro y procedimiento
DESCRIPTION
USO DE MACROS Y PROCEDIMIENTOS EN ENSAMBLADORTRANSCRIPT
Instituto Tecnológico Superior De
San Martín Texmelucan
MATERIA:
Lenguajes de Interfaz
DOCENTE:
Ing. Susana Garrido Cortez
ALUMNO(A):
Pablo Corona Solano
SEMESTRE:
5 SEMESTRE
ÁREA:
ING. SISTEMAS COMPUTACIONALES
NOMBRE DEL TRABAJO:
INVESTIGACIÓN MACRO Y
PROCEDIMIENTO
Instituto Tecnológico Superior De
San Martín Texmelucan
INTRODUCCIÓN
Una macro es un nombre que define un conjunto de instrucciones que
serán sustituidas por la macro cuando el nombre de ésta aparezca en un
programa (proceso denominado expansión de macros) en el momento
de ensamblar el programa identificar.
Una macroinstrucción es una instrucción compleja, formada por otras
instrucciones más sencillas. Esto permite la automatización de tareas
repetitivas. Además tiene que estar almacenada, el término no se aplica
a una serie de instrucciones escritas en la línea de comandos enlazadas
unas con otras por redirección de sus resultados o para su ejecución
consecutiva.
Las macros suelen almacenarse en el ámbito del propio programa que
las utiliza y se ejecutan pulsando una combinación especial de teclas o
un botón especialmente creado y asignado para tal efecto. La diferencia
entre una macroinstrucción y un programa es que en las
macroinstrucciones la ejecución es secuencial y no existe otro concepto
del flujo de programa que por tanto, no puede bifurcarse.
Un ejemplo de macro, para colocar el cursor en alguna posición
determinada de la pantalla es:
Posición MACRO Fila, Columna
PUSH AX
PUSH BX
PUSH DX
MOV AH, 02H
MOV DH, Fila
MOV DL, Columna
Instituto Tecnológico Superior De
San Martín Texmelucan
MOV BH, 0
INT 10H
POP DX
POP BX
POP AX
ENDM
MACROS
Ventajas y desventajas del uso de macros.
Si bien es cierto que las macros proporcionan mayor flexibilidad a la
hora de programar, también es cierto que tienen algunas desventajas.
La siguiente es una lista de las principales ventajas y desventajas del
uso de las macros.
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 la redundancia
de código.
Instituto Tecnológico Superior De
San Martín Texmelucan
INICIO MACRO ; Define macro
MOV AX, DATA ; cuerpo de
MOV DS, AX ; la definición
MOV ES, AX ; de la macro
ENDM
La creación de estas bibliotecas es muy sencilla, únicamente 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
escribiríamos 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
Instituto Tecnológico Superior De
San Martín Texmelucan
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 un archivo diferente. La creación de estas
bibliotecas es muy sencilla, únicamente 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
escribiríamos normalmente las macros, esto es, al principio de nuestro
programa
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
EJEMPLO:
Instituto Tecnológico Superior De
San Martín Texmelucan
Instituto Tecnológico Superior De
San Martín Texmelucan
PROCEDIMIENTOS EXTERNOS E INTERNOS
Una llamada a un procedimiento involucra el pase de información tanto
hacia el procedimiento como de retorno y el pase del control de flujo de
ejecución de una parte del código hacia otra. El pase de información
desde y hacia el procedimiento se realiza a través de la pila. La porción
de la pila asignada a una llamada a un procedimiento se conoce como
marco de pila. Para utilizar la pila se usan dos registros que sirven de
apuntadores: %ebp es el apuntador de marco de pila y %esp es el
apuntador de pila, éste es el registro cuyo contenido cambia mientras se
ejecuta el procedimiento.
Los procedimientos internos son aquellos que se declaran y semismo
programa, también son llamados procedimientos locales. Un ejemplo
de procedimiento interno es el siguiente:
; Procedimiento: GotoXY
; Descripción: Coloca el cursor una posición especifica de la pantalla
; Parámetros: Dl=X,Dh=Y
PROC GotoXY
xor bh,bh
mov ah,02h
int 10h
ret
endp GotoXY
Los procedimientos externos, a diferencia de los internos, se declaran en
módulos o programas separados al programa donde el procedimiento es
llamado, en otras palabras, la llamada al procedimiento se encuentra en
un programa y el procedimiento en otro.
Instituto Tecnológico Superior De
San Martín Texmelucan
Para poder utilizar procedimientos externos, es necesario que sean
declarados como públicos en el programa donde se encuentran y que
sean llamados como externos en el programa donde serán usados. Se
debe contar con tres directivas de ensamble: .PUBLIC para declarar los
procedimientos como públicos, .EXTERN para indicar que el
procedimiento que se va a usar está fuera del programa y .INCLUDE
para enlazar el programa que contiene los procedimientos con el
programa que los llama.
PUBLIC PROC1 ; Se define como público
PROC1 PROC FAR ; comienzo del procedimiento (lejano)
(Instrucciones) ; Instrucciones del procedimiento
RET ; Instrucción para retornar
PROC1 ENDP ; Final del procedimiento
Para llamar a un procedimiento se utiliza la instrucción CALL:
CALL nombre_procedimiento
Por ejemplo Este programa muestra la forma de utilizar procedimientos
y datos externos en los programas por medio de las directivas de
inclusión include y public.
.MODEL TINY
.INCLUDE proc2.ASM ;Incluir el archivo proc2.asm
;el cual contiene la variable de cadena
;Cad1 y los procedimientos externos
;usados en este programa.
.DATA
Cad2 db 'Esta es una cadena de prueba 2...',13,10,'$'
.CODE
Instituto Tecnológico Superior De
San Martín Texmelucan
INICIO: ;Punto de entrada al programa
Mov Dl,20 ;X=20
Mov Dh,10 ;Y=10
Call GotoXY ;GotoXY 20,10
Lea DX,Cad2 ;DX->Cad2 en Proc3.asm
Call Imprime_Cad ;Imprime Cad2
Lea DX,Cad1 ;DX->Cad1 en Proc2.asm
Call Imprime_Cad ;Imprime Cad1
Mov AX,04C00h ;Fin del programa
Int 21h ;
END INICIO
END