Programas: Turbo Assembler [Parte 2]

Tarea 5. Programas en Ensamblador: Suma y Resta

Esta vez veremos programas muy sencillos que suman o restan dos numeros, pero ojo, solamente de UNA CIFRA ya que al teclear el número, automaticamente lo tomará como si fuera el valor final. 

Suma de 2 Números:

Código:
ORG 100H

.MODEL SMALL
.STACK 64
.DATA
 N1 DB 0
 N2 DB 0
 RESTA DB 0
 msg1 DB "INGRESE EL PRIMER VALOR:", '$'
 msg2 DB 10,13, "INGRESE EL SEGUNDO VALOR:", '$'
 msg3 DB 10,13, "Resultado= ", '$'
 .CODE

BEGIN PROC FAR 
;DIRECCIONAMOS AL SEGMENTOS DE DATOS
    MOV AX,@DATA
    MOV DS,AX
    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 ;LO QUE ESTA EN N1 LO ASIGNA
    ADD AL,N2

;SE HACE A LA INVERSA 
    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  ;VALOR QUE SE USA PARA PONER ALGO EN PANTALLA
    MOV DL,RESTA
    INT 21H
    MOV AH,4CH
    BEGIN ENDP  
    
     END





Resta de 2 Números


ORG 100H

.MODEL SMALL
.STACK 64
.DATA
 N1 DB 0
 N2 DB 0
 RESTA DB 0
 msg1 DB "INGRESE EL PRIMER VALOR:", '$'
 msg2 DB 10,13, "INGRESE EL SEGUNDO VALOR:", '$'
 msg3 DB 10,13, "Resultado= ", '$'
 .CODE

BEGIN PROC FAR 
;DIRECCIONAMOS AL SEGMENTOS DE DATOS
    MOV AX,@DATA
    MOV DS,AX
    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 ;LO QUE ESTA EN N1 LO ASIGNA
    SUB AL,N2

;SE HACE A LA INVERSA 
    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  ;VALOR QUE SE USA PARA PONER ALGO EN PANTALLA
    MOV DL,RESTA
    INT 21H
    MOV AH,4CH
    BEGIN ENDP  
    
     END

Comments