Ciencia Y Estudio
.stack 100h
.data
ms db 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,13,' ---> s para salir',10,13,' ---> c para borrar',10,10,13,' ------------CALC-------------$'
lin1 db 10,13,' +---------------------------+$'
lin2 db 10,13,' | +---+ +---+ +---+ +---+ |$' ;Se define la interfazgrafica
lin3 db 10,13,' | | 1 | | 2 | | 3 | | + | |$'
lin4 db 10,13,' | +---+ +---+ +---+ +---+ |$'
lin5 db 10,13,' | +---+ +---+ +---+ +---+ |$'
lin6 db 10,13,' | | 4 | | 5 | | 6 | | - | |$'
lin7 db 10,13,' | +---+ +---+ +---+ +---+ |$'
lin8 db 10,13,' | +---+ +---+ +---+ +---+ |$'lin9 db 10,13,' | | 7 | | 8 | | 9 | | c | |$'
lin10 db 10,13,' | +---+ +---+ +---+ +---+ |$'
lin11 db 10,13,' | +---+ +---+ +---+ +---+ |$'
lin12 db 10,13,' | | * | | 0 | | / | | s | |$' ;Cada uno de los supuestos botones realiza algo
lin13 db 10,13,' | +---+ +---+ +---+ +---+ |$' ;Al presionar 'c' --> "limpiapantalla" y vuelve a iniciar
lin14 db 10,13,' +---------------------------+$' ;Al presionar 's' --> Sale del programa
lin15 db 10,13,' Expresion: $'
msg1 db 10,13,' Resultado: $'
resi db ' residuo> $' ;Si hay residuo imprimimos el mensaje
msg2 db 10,13,' Resultado en Binario: $'
msg3 db 10,13,'****ERROR EN LA EXPRESION... LA MANERACORRECTA: ',10,13,'Presiona una tecla para continuar...$'
b db ? ;Variable bandera
e db ? ;Variable utilizada para error o borrar
v1 db ? ;variable que almacena el primer numero
v2 db ? ;variable que almacena el segundo numero
op db ? ;variable que almacena el operador.code
main proc
mov ax,@data
mov ds,ax
menu1: call menu ;Mandamos llamar al procedimiento menu
mov b,0 ;Inicializamos nuestras variables
mov e,0
call leecar ;Mandamos llamar al procedimiento leecar el cual lee un caracter
cmp al,'s' ;Comparamos el caracter leido con 's'
jeprefin ;Si es igual salimos del programa
cmp e,1 ;Comparamos la variable e con 1
je menu1 ;Si es igual quiere decir que hay error y saltamos a menu1
mov v1,al ;Almacenamos el numero leido en la variable v1
mov b,1 ;Cambiamos el estado de nuestra bandera
call leecar;Mandamos llamar al procedimiento leecar el cual lee un caracter
cmp al,'s' ;Comparamos el caracter leido con 's'
je prefin ;Si es igual salimos del programa
cmp e,1 ;Comparamos la variable e con 1
je menu1 ;Si es igual quiere decir que hay error y saltamos a menu1
mov op,al;Almacenamos el operador leido en la variable op
mov b,0 ;Cambiamos el estado de nuestra bandera
call leecar ;Mandamos llamar al procedimiento leecar el cual lee un caracter
cmp al,'s' ;Comparamos el caracter leido con 's'
je prefin ;Si es igual salimos del programa
cmp e,1 ;Comparamosla variable e con 1
je menu1 ;Si es igual quiere decir que hay error y saltamos a menu1
mov v2,al ;Almacenamos el numero leido en la variable v2
cmp op,'+' ;Comparamos el operador con '+'
je funcsuma ;Si es igual saltamos a funcsuma
cmp op,'-' ;Y asi con las demas comparaciones...
Regístrate para leer el documento completo.