Programa de resta en ensamblador

.MODEL SMALL
.STACK 64
.DATA
   N1 DB 0
   N2 DB 0
   RESTA DB 0
   MSG1 DB "DAME EL PRIMER VALOR: " , "$"
   MSG2 DB 10,13, "DAME EL SEGUNDO VALOR: " , "$"
   MSG3 DB 10,13, "RESTA= " , "$"
.CODE
  BEGIN PROC FAR
    ;DIRECCIONAMOS AL SEGMENTOS DE DATOS
    MOV AX, @DATA
    MOV DS, AX

    ;SOLICITAMOS EL PRIMER DIGITO
    MOV AH, 09
    LEA DX, MSG1
    INT 21H
    MOV AH, 01
    INT 21H
    SUB AL, 30H;CONVIERTE EL CARACTER EN NUMERO
    MOV N1, AL

    ;SOLICITAMOS EL SEGUNDO DIGITO
    MOV AH, 09
    LEA DX, MSG2
    INT 21H
    MOV AH, 01
    INT 21H
    SUB AL, 30H;CONVIERTE EL CARACTER EN NUMERO
    MOV N2, AL
    ;OPERACION
    MOV AL, N1
    SUB AL, N2
    ADD AL, 30H;CONVIERTE A CARACTER
    MOV RESTA, AL
    MOV AH, 09
    LEA DX, MSG3
    INT 21H

    ;SE IMPRIME EL CARACTER CON EL SERVICIO 02 DE LA INT 21H
    MOV AH, 02
    MOV DL, RESTA
    INT 21H
    MOV AH, 4CH
    INT 21
    BEGIN ENDP
  END

Comentarios