-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEXAU2.asm
More file actions
176 lines (130 loc) · 2.96 KB
/
EXAU2.asm
File metadata and controls
176 lines (130 loc) · 2.96 KB
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
.model Small
.stack 64
.data
HT EQU 09
LF EQU 10
CR EQU 13
msj1 db 'Introduce un numero: ',CR, LF, '$'
msj2 db 10, 'Introduce otro numero : ', CR, LF ,'$'
msj3 db 10, 'Selecciona la operacion a realizar:''M. - Multiplicacion , A. - AND , O. - OR , X. - XOR', CR, LF, '$'
msj4 db 'El resultado es :', CR, LF, '$'
msj0 db '*Bienvenido a tu calculadora logica-aritmetica*', CR, LF, '$'
num1 db ?
num2 db ?
num3 db ?
num4 db ?
.code
main proc NEAR
MOV ax, @data
MOV ds, ax
;------------------
mov AH, 06H ;limpiar pantalla
mov AL, 00H
mov BH, 02H ;atibuto
mov CH, 00H ;Renglon inicio
mov CL, 00H ;Columna inicio
mov DH, 00H ;Renglon Final
mov DL, 4FH ;Columna final
int 10H
mov AH, 09H
lea dx, msj0
int 21H
;capturar primer numero
mov AH, 06H ;limpiar pantalla
mov AL, 00H
mov BH, 03H ;atibuto
mov CH, 01H ;Renglon inicio
mov CL, 00H ;Columna inicio
mov DH, 01H ;Renglon Final
mov DL, 4FH ;Columna final
int 10H
mov AH, 09H
lea dx, msj1
int 21H
mov ah,01H
int 21H
sub al, 48
mov num1, AL
;capturar segundo numero
mov AH, 06H ;limpiar pantalla
mov AL, 00H
mov BH, 04H ;atibuto
mov CH, 03H ;Renglon inicio
mov CL, 00H ;Columna inicio
mov DH, 03H ;Renglon Final
mov DL, 4FH ;Columna final
int 10H
mov ah, 09H
lea dx, msj2
int 21H
;capturar el segundo numero
mov ah,01H
int 21H
sub al, 48
mov num2, AL
;captura para saber si es suma o resta
mov AH, 06H ;limpiar pantalla
mov AL, 00H
mov BH, 05H ;atibuto
mov CH, 04H ;Renglon inicio
mov CL, 00H ;Columna inicio
mov DH, 06H ;Renglon Final
mov DL, 4FH ;Columna final
int 10H
mov ah,09h
lea dx, msj3
int 21H
mov ah,01h
int 21h
;opciones de la opreacion
CMP AL, 'M'
jmp opcion1
CMP AL, 'A'
jmp opcion2
CMP AL, 'O'
jmp opcion3
CMP AL, 'X'
jmp opcion4
;opciones
opcion1:
mov al, num1
add al, num2
mov ah, 00H
AAA
mov num3, al
mov num4, ah
int 21h
opcion2:
int 21H
opcion3:
int 21H
opcion4:
int 21h
;suma y ajuste de la suma
mov al, num1
add al, num2
mov ah, 00H
AAA
mov num3, al
mov num4, ah
mov AH,09H
lea dx, msj4
int 21H
;ajuste numero a ASCII
mov AH,02H
mov al, num4
add al, 48
mov dl, al
int 21h
mov AH,02h
mov al, num3
add al, 48
mov dl, al
int 21h
;--------------
;salir del DOS
;--------------
mov ax, 4C00h
int 21h
main endp
end main