martes, 1 de febrero de 2011

Suma y Resta números de dos cifras

;************************************************************
; Captura dos números de dos cifras, calcula la suma y la
; diferencia y las presenta en pantalla.
; Para obtener resultados correctos debe proporcionarse
; primero el número mayor.
; Utiliza funciones de la int 21h
;
; Elaborado por Fernando Monrroy. 2011
; para el curso de programación ensamblador
;
;************************************************************

.MODEL small
.STACK 100h

.DATA
ms1 DB 10,13,'Ingrese un numero de dos cifras: $'
ms2 DB 10,13,'La suma es: $'
ms3 DB 10,13,'La diferencia es: $'
ms4 DB 10,13,'$'
m DB ?
n DB ?
s DB ?
d DB ?
cien DB 100

.CODE
MOV AX,@DATA
MOV DS,AX
MOV AH,9
LEA DX,ms1
INT 21H
MOV AH,1
INT 21H
SUB AL,30H
MOV m,AL
INT 21H
SUB AL,30H
MOV AH,m
AAD
MOV m,AL
MOV AH,9
LEA DX,ms1
INT 21H
MOV AH,1
INT 21H
SUB AL,30H
MOV n,AL
INT 21H
SUB AL,30H
MOV AH,n
AAD
MOV n,AL

MOV AH,9
LEA DX,ms2
INT 21H
MOV AL,m
ADD AL,n
XOR AH,AH
DIV cien
ADD AL,30H
MOV DL,AL
MOV AL,AH
AAM
ADD AX,3030H
MOV BX,AX
MOV AH,2
INT 21H
MOV DL,BH
INT 21H
MOV DL,BL
INT 21H
MOV AH,9
LEA DX,ms3
INT 21H
MOV AL,m
SUB AL,n
AAM
ADD AX,3030H
MOV BX,AX
MOV AH,2
MOV DL,BH
INT 21H
MOV DL,BL
INT 21H
MOV AH,9
LEA DX,ms4
INT 21H
MOV AH,1
INT 21H

MOV AH,4ch
INT 21h
END

8 comentarios:

  1. y si solo quiero hacer la resta como lo acomodo y quisiera ver si me lo puedes explicar por linea

    ResponderEliminar
    Respuestas
    1. tal vez sea muy tarde pero para restar solo cambiale aqui:
      ADD AL,n; DIRA ESTO
      sub AL,n; PERO LO CAMBIAS POR ESTO

      Eliminar
    2. jajajaja creo que ya hasta terminó la Universidad

      Eliminar
  2. hola, me es muy util pero tambien me gustaria saber como puedo agregar mas digitos.

    Saludos,

    ResponderEliminar
  3. le faltan comentarios al codigo para que sea mas entendible, de todas formas gracias (y)

    ResponderEliminar
  4. Gracias... de verdad me sirvio mucho

    ResponderEliminar
  5. y si lo quisieras hacer de 1 solo dígito, como seria

    ResponderEliminar