[title]Calculadora[/title]
Soy estudiante de Ingenieria en sistemas y este fue uno de los primeros programas que me dejaron espero que a alguien le sirva y pueda ayudarle de algo.
La calculadora solo suma resta multiplica y divide numeros de una cifra.
Les pongo el codigo por que no pude subirlo
.model small
.stack
.data
ini db \"ESCOJA LA OPERACION QUE QUIERE REALIZAR\"1013 1013 \'$\'
suma db 1013 \"[1] Suma\" \'$\'
rest db 1013 \"[2] Resta\" \'$\'
mult db 1013 \"[3] Multiplicacion\" \'$\'
divi db 1013 \"[4] Divisiones enteras\" 1013\'$\'
selec db 1013 \">>>>>>>>> \" \'$\'
error db 1013 \"Elija un numero entre 1-4 \" \'$\'
valor db 1013 \"Ingrese valor 1: \" \'$\'
valor2 db 1013 \"Ingrese valor 2: \" \'$\'
msg db 1013 \"El resultado es: \" \'$\'
sor db 1013 \"Ingrese divisor \"\'$\'
dendo db 1013 \"Ingrese dividendo \" \'$\'
hecho db 1013 1013 \"REALIZADO POR: GONZALO TORRES \" \'$\'
sele db \'0\'
cap db \'0\'
cap2 db \'0\'
resul db \'0\'
.code
mov ax @data
mov ds ax
men:
;BORRAR PANTALLA
mov ah 6
mov al 0
mov bh 07H
mov cx 0 ; Esquina superior izquierda (CH:filaCL columna)
mov dx 24*256+79 ; Esquina inferior derecha (DH:filaDL:columna)
int 10h
;PONE AL CURSOR EN UNA COORDENADA
mov ah 2
mov bh 0 ; Pagina de video
mov dh 4 ; Fila
mov dl 0 ; Columna
int 10h
;IMPRESION DEL MENU
mov ah 09h
mov dx offset ini
int 21h
mov ah 09h
mov dx offset suma
int 21h
mov ah 09h
mov dx offset rest
int 21h
mov ah 09h
mov dx offset mult
int 21h
mov ah 09h
mov dx offset divi
int 21h
mov ah 09h
mov dx offset selec
int 21h
mov ah 01h
int 21h
mov sele al
sub sele 48
;COMPROBACION SI EL NUEMRO INGRESADO ESTA EN EL MENU
sub al al
mov al 4
mov bl sele
cmp bl al
jbe inicio
ja erro
erro:
mov ax seg error
mov ds ax
mov ah 09h
mov dx offset error
int 21h
mov ah 01h
int 21h
mov sele al
inicio:
;COMPROBACION DE SI ES UNO
sub al al
mov bl sele
mov al 1
cmp bl al
je sum
ja sigue
;SUMA
sum: sub ax ax
;VALOR 1
mov ax seg valor
mov ds ax
mov ah 09h
mov dx offset valor
int 21h
mov ah 01h
int 21h
mov cap al
sub cap 48
; VALOR 2
mov ax seg valor2
mov ds ax
mov ah 09h
mov dx offset valor2
int 21h
mov ah 01h
int 21h
mov cap2 al
sub cap2 48
;SUMAMOS
mov bl cap
add bl cap2
mov resul bl
;MENSAJE
mov ax seg msg
mov ds ax
mov ah 09h
mov dx offset msg
int 21h
;IMPRIMIMOS RESULTADO
mov ax 0
mov al resul
add al 48
mov ah 2
mov dl al
int 21h
jmp fin
;COMPROBACION DE SI ES DOS
sigue:
sub al al
mov bl sele
mov al 2
cmp bl al
je res
ja sigue2
;RESTA
res: sub ax ax
;VALOR 1
mov ax seg valor
mov ds ax
mov ah 09h
mov dx offset valor
int 21h
mov ah 01h
int 21h
mov cap al
sub cap 48
;VALOR 2
mov ax seg valor2
mov ds ax
mov ah 09h
mov dx offset valor2
int 21h
mov ah 01h
int 21h
mov cap2 al
sub cap2 48
;restamos
mov bl cap
sub bl cap2
mov resul bl
;MENSAJE
mov ax seg msg
mov ds ax
mov ah 09h
mov dx offset msg
int 21h
;IMPRIMIMOS RESULTADO
mov ax 0
mov al resul
add al 48
mov ah 2
mov dl al
int 21h
jmp fin
;COMPROBACION DE SI ES TRES
sigue2:
sub al al
mov al 3
cmp bl al
je multt
ja sigue3
;MULTIPLICACION
multt: sub ax ax
mov ax seg valor
mov ds ax
mov ah 09h
mov dx offset valor
int 21h
mov ah 01h
int 21h
mov cap al
sub cap 48
; VALOR 2
mov ax seg valor2
mov ds ax
mov ah 09h
mov dx offset valor2
int 21h
mov ah 01h
int 21h
mov cap2 al
sub cap2 48
;multimplicamos
mov al cap
sub al 1
mov cl al
mov bl cap2
uno: add bl cap2
loop uno
mov resul bl
;MENSAJE
mov ax seg msg
mov ds ax
mov ah 09h
mov dx offset msg
int 21h
;IMPRIMIMOS RESULTADO
mov ax 0
mov al resul
add al 48
mov ah 2
mov dl al
int 21h
jmp fin
;COMPROBACION DE SI ES CUATRO
sigue3:
sub al al
mov al 4
cmp bl al
je dis
;DIVISION
dis: sub ax ax
;VALOR 1
mov ax seg dendo
mov ds ax
mov ah 09h
mov dx offset dendo
int 21h
mov ah 01h
int 21h
mov cap al
sub cap 48
;VALOR 2
mov ax seg sor
mov ds ax
mov ah 09h
mov dx offset sor
int 21h
mov ah 01h
int 21h
mov cap2 al
sub cap2 48
;dividimos
mov al cap2
mov bl cap
div bl
mov resul ah
;MENSAJE
mov ax seg msg
mov ds ax
mov ah 09h
mov dx offset msg
int 21h
;IMPRIMIMOS RESULTADO
mov ax 0
mov al resul
add al 48
mov ah 2
mov dl al
int 21h
fin:
mov ah 09h
mov dx offset hecho
int 21h
mov ah 4ch
int 21h
end
Autor: Gonzalo Torres