top of page

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 

bottom of page