Suma de dos numeros

; FECHA : miercoles 27 septiembre 2017
;========================================================
.model small
.stack 100
.data
msj1 db 'Numero 1: ','$'
msj2 db 13,10,'Numero 2: ','$'
msj3 db 13,10,'Suma: ','$'
msj5 db 13,10,'Multiplicacion: ','$'
linea db 13,10,'$'
var1 db 0
var2 db 0
.code
.startup
    call limpia
    mov ah,09h
    lea dx, msj1 ;desplegar numero 1:
    int 21h
    call leer ;lee primer numero
    sub al,30h ;restar 30h para obtener el numero
    mov var1,al ;lo guardo en var1
    mov ah,09h
    lea dx, msj2 ;desplegar numero 2:
    int 21h
    call leer ;lee segundo numero
    sub al,30h ;restar 30h para obtener segundo valor
    mov var2,al ;guardar en var2
    mov bl,var2 ;mover a bl
    ;******************* SUMA
    add bl,var1 ; realizo la suma de var2(bl) y var1 y el resultado queda en bl
    mov ah,09h
    lea dx,msj3 ;imprimir suma
    int 21h
    mov dl,bl ;pongo en dl el numero a imprimir var2(bl)
    add dl,30h ; agrego 30h para obtener el caracter
    mov ah,02h ;imprime un caracter
    int 21h
    ;******************MULTIPLICACION
    mov ah,09h
    lea dx,msj5 ;desplegar mult
    int 21h
    mov al,var1
    mov bl,var2
    mul bl ;mult al=al*bl
    mov dl,al ;mover al a dl para imprimir
    add dl,30h ;sumar 30 para obtener caracter
    mov ah,02h ;imprimir caracter
    int 21h
.exit
; ****************PROCEDIMIENTOS
salto proc near
    mov ah,09h
    lea dx,linea
    int 21h
    mov dl,00h
    ret
salto endp
leer proc near
    mov ah,01h;leer caracter desde el teclado
    int 21h;lee primer caracter
    ret
leer endp
limpia proc near
    mov ah,00h
    mov al,03h
    int 10h
    ret
limpia endp
end

Comentarios

Entradas populares de este blog

Multiplicacion

EMU8086