

ISC. Juan Arturo Ortegon Lemus
Macro y Procedimiento
En un segundo programa con macro realizaremos un ciclo que valla imprimiendo el decremento del contador CX en un ciclo LOOP, pasando como parámetro el número a imprimir.
imprime macro numero ;Nuestra macro se llama imprimir, nuestro parámetro es numero
mov ah,02h ;peticion para colocar el cursor
mov dl,numero ;Indica que mueva al registro DL lo que pasamos como parámetro.
add dl,30h ;suma 30h para imprimir el número real.
int 21h ;interrupcion llama al DOS (lectura aleatoria)
endm ;termina la macro
model small
.stack 64
.data
num db 0 ;declaramos nuestra variable.
.code
mov cx,9
inicio:
mov num,cl ;contador
imprime num ;Llamamos al macro con el valor de nuestra variable.
loop inicio ;repite ciclo
mov ah,04ch ;Finaliza el programa.
int 21h
end

Por ejemplo, si queremos una rutina que nos sume dos bytes, almacenados en AH y AL cada uno y guardar la suma en el registro BX:
Suma Proc Near ;Declaración del procedimiento
Mov Bx, 0 ;Contenido del procedimiento
Mov Al, Ah
Mov Ah, 00
Add Bx, Ax ;Ax=Acumulador
Ret ;Directiva de regreso
Suma Endp ;Declaración de final del procedimiento