MACROS
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.
INITZ MACRO ;define macro
MOV AX,@data ;}cuerpo de
MOV DS,AX ;{la definicion
MOV ES,AX :{de la macro
ENDM ;Fin de la macro
una macro que recibe un parametro y que permite cadenas en pantalla seria :
.MACRO Imprime_Cad(cadena)
LEA DX,Cadena
MOV AH,09h
INT 21h
ENDM
PROCEDIMIENTOS
A continuación se describen los pasos necesarios para la ejecución de un procedimiento:
1. Se encuentra la llamada Call.
2. El microprocesador almacena en la Pila el contenido del IP.
3. Se coloca en el IP el valor del desplazamiento correspondiente al Procedimiento.
4. El microprocesador ejecuta las instrucciones del procedimiento.
5. El procedimiento termina cuando se encuentra con la instrucción Ret.
6. Se saca de la Pila el valor original del IP y se continua el flujo del programa
El siguiente procedimiento coloca el cursor en las coordenadas establecidas en DI y DH:
PROC GotoXY
XOR BH,BH
MOV AH,02H
INT 10h
RET
ENDP GotoXY
--------------------------------------------------------
page 60,132
TITLE P08CALLP (EXE) Llamada a procedimientos
.MODEL SMALL
.STACK 64
.DATA
;---------------------------------------------------------------------
.CODE
BEGIN PROC FAR
CALL B10 ;Llama a B10
; ...
MOV AX,4C00H ;Salida a DOS
INT 21H
BEGIN ENDP
;---------------------------------------------------------------------
B10 PROC NEAR
CALL C10 ;Llama a C10
; ...
RET ;De regreso
B10 ENDP ;Quien llama
;---------------------------------------------------------------------
END BEGIN
diferencia entre macro y procedimiento:
El empleo de macros no debemos confundirlo con el empleo de procedimientos, ya que una llamada a una macro sustituye su nombre por el cuerpo de la misma, en cambio, una llamada a procedimientos lo único que realiza es un enlace con otro programa. Las macros se suelen incluir todas dentro de ficheros específicos. En cada uno de los ficheros situaremos las macros que tengan alguna relación entre sí
No hay comentarios:
Publicar un comentario