;PROGRAMA QUE LEE DESDE EL TECLADO DOS NUMEROS DECIMALES, LOS
;SUMA Y LOS MUESTRA EN PANTALLA

; DEFINICION DE CONSTANTES
   CR EQU 13       ; RETORNO DE CARRO AL PRINCIPIO DE LA LINEA
   LF EQU 10       ; SALTA A LA SIGUIENTE LINEA
   BS EQU 08       ; RETROCEDE UN ESPACIO

DATOS SEGMENT
MSG1 DB “INGRESA EL 1ER. NUMERO: “, “$”
MSG2 DB “INGRESA EL 2DO. NUMERO: “, “$”
MSG3 DB “LA SUMA ES: “, “$”
PROXLINEA DB 10,13,”$”
DATOS ENDS

CODIGO SEGMENT
ASSUME CS:CODIGO, DS:DATOS

INICIO:
 MOV AX,DATOS
 MOV DS,AX
 MOV DX,OFFSET MSG1
 MOV AH,09
 INT 21H

        MOV AH,01h   
        INT 21h
        SUB AL,30h    ;se pasa del cOdigo ASCII al decimal
        MOV BL,AL

 MOV DX,OFFSET PROXLINEA
 MOV AH,09
 INT 21H

 MOV DX,OFFSET MSG2
 MOV AH,09
 INT 21H
  
        MOV AH,01h    ;se lee el siguiente nUmero
        INT 21h
        AND AL,0Fh    ;se pasa del c¢digo ASCII al decimal
        MOV AH,00
        sub BL,AL     ;se suman los nUmeros

 MOV DX,OFFSET PROXLINEA
 MOV AH,09
 INT 21H

 MOV DX,OFFSET MSG3
 MOV AH,09
 INT 21H

        MOV AH,02h    ;las 07 sgtes. inst. muestran el resultado
        MOV DL,Bh
        ADD DL,30h
        INT 21h
        MOV DL,BL
        ADD DL,30h
        INT 21h
        MOV AH,4Ch    ;se devuelve el control al inicio.
        INT 21h

CODIGO ENDS
 END INICIO