sumas macro p, s ;macro de la suma
mov al, p ;se mueve el primer numero a al
add al, s ;a al se le suma el segundo numero (s)
add al, 30h ;a al se le suma 30h para obtener de nuevo el numero en decimal
mov suma, al ;se mueve al a suma
mov ah, 09 ;salida de cadena de caracteres
lea dx, msj3 ;se imprime el mensaje 3
int 21h ;interrupcion de sistema
mov ah, 02 ;peticion para colocar el cursor
mov dl, suma ;se mueve suma a dl
int 21h ;interrupcion de sistema
mov ah, 4ch ;termina programa
int 21h ;interrupcion de sistema
endm
.model small
.stack 64
.data ;segmento datos
n1 db 0
n2 db 0
suma db 0
msj db "Dame el primer valor: $"
msj2 db 10,13, "Dame el segundo valor: $"
msj3 db 10,13, "suma = $"
.code ;segmento codigo
mov ax, @data ;se mueve data a ax
mov ds, ax ;se mueve ax a ds
mov ah, 09 ;salida de una cadena de caracteres
lea dx, msj ;se imprime el primer mensaje
int 21h ;interrupcion de sistema
mov ah, 01 ;peticion de leer caracter
int 21h ;interrupcion de sistema
sub al, 30h ;se resta 30h para obtener el numero
mov n1, al ;se mueve al a n1
mov ah, 09 ;salida de una cadena de caracteres
lea dx, msj2 ;se imprime el segundo mensaje
int 21h ;interrupcion de sistema
mov ah, 01 ;peticion de leer caracter
int 21h ;interrupcion de sistema
sub al, 30h ;se resta 30h para obtener el numero
mov n2, al ;se mueve al a n2
sumas n1, n2 ;se llama al macro y se le envian los parametros
ret
No hay comentarios:
Publicar un comentario