-
Notifications
You must be signed in to change notification settings - Fork 3
/
Calculadora.asm
93 lines (81 loc) · 1.25 KB
/
Calculadora.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
org 100h
use16
start:
;limpiar la pantalla
mov ah,00h
mov al,03h
int 10h
;Mensaje de bienvenida
mov ah,9h
mov dx,msg
int 21h
;esperar numeros
Esperar:
mov ah,00h
int 16h
;echo
mov ah, 0eh
int 10h
;operar conforme se presionan las teclas
cmp al,27 ;salir con q
je SalirEsc
cmp al,'+' ;detectar suma
je Suma
cmp al,'-' ;detectar resta
je Resta
cmp al,'*' ;detectar multiplicacion
je Mult
cmp al,'/' ;detectar division
je Divi
cmp al,13 ;operar
je Operar
;ver si es numero
mov cl,al
push cx ;guardar el numero a la pila
sub al, 40h ;ver si es numero
cmp al, 0
jge Error
jmp Esperar ;esperar siguiente numero o tecla
Suma:
;acciones para sumar cosas
pop cx
add al,cl
int 21h
jmp Esperar
Resta:
;acciones para restar cosas
pop cx
sub al,cl
jmp Esperar
Mult:
;acciones para multiplicar cosas
pop cx
;mul al,cl
jmp Esperar
Divi:
;acciones para dividir cosas
pop cx
;div al,cl
jmp Esperar
Operar:
;acciones para operar
pop cx
mov ah,09h
mov dx,opact
int 21h
jmp Esperar
Error:
mov ah,09h
mov dx,error
int 21h
jmp Esperar
SalirEsc:
mov ah,09h
mov dx,adios
int 21h
ret
num db ?
opact db "operacion realizada:",13,10,"$"
msg db "Bienvenido a la calculadora",13,10,"$"
adios db 13,10,"Adios :)",13,10,"$"
error db 13,13,"esto no es un numero",13,10,"$"