Está en la página 1de 2

MSG 'CALCULADORA COMA FLOTANTE': ;Imprimimos menu

MSG '**** MENU ****'


MSG '1 = SUMA'
MSG '2 = RESTA'
MSG '3 = MULTIPLICACIN'
MSG '4 = DIVISIN'
MSG
LDT 'INGRESE SELECCIN'; Capturamos por teclado el numero acorde a operacion.
CMP 80 ;Comparamos con el # preestablecido en memoria 80, que es 1.
JEQ 40 ;Si son iguales salte a la memoria 40 ejecute a partir de hay.
; de lo contrario ...
CMP 81 ;Comparamos con el numero preestablecido en memoria 81, que es 1.
JEQ 50 ;Si son iguales salte a la memoria 50 ejecute a partir de hay.
; de lo contrario ...
CMP 82 ;Comparamos con el numero preestablecido en memoria 82, que es 1.
JEQ 60 ;Si son iguales salte a la memoria 60 ejecute a partir de hay.
; de lo contrario ...
CMP 83 ;Comparamos con el numero preestablecido en memoria 83, que es 1.
JEQ 70 ;Si son iguales salte a la memoria 70 ejecute a partir de hay.
; de lo contrario ...
MSG 'ERROR DE DIGITACION INTENTELO DE NUEVO';Imprima mensaje de errror
JMP 0 ;Salta incondicionalmente y presenta nuevamente el menu seleccion,
;MENU DE SUMA
#40
MSG 'SUMA'
MSG 'Ingrese numero'
IN AX,1 ; Lee de puerto 1 el teclado y permite que sean numeros flotantes)
; esta instruccion remplaza a LTD.
STF 2A ; Almaceno el numero de 32 bits en 2A y 2B, en 2A quedan los
;16 bits mas significativos y en 1B los 16 menos significativos.
MSG 'Ingrese numero'
IN AX,1 ; Capturamos segundo numero y queda en AX.
ADDF 2A ; Sumamos a AX el numero guardado en 2A.
MSG 'RESULTADO'
OUT 1,AX ; Imprimimos en pantalla el resultado a travez del pto 1.
HLT ; Termina programa.
;MENU DE RESTA
#50
MSG 'RESTA'
MSG 'Ingrese numero'
IN AX,1
STF 2A
MSG 'Ingrese numero'
IN AX,1
STF 2C ; Almaceno el numero de 32 bits en 2C y 2D,
LDF 2A ; Cargo en AX la memoria 2A.
SUBF 2C ; Resta a AX el valor de 2C
MSG 'RESULTADO'
OUT 1,AX
HLT
;MENU DE MULTIPLICACION
#60
MSG 'MULTIPLICACION'
MSG 'Ingrese numero'
IN AX,1
STF 2A

MSG 'Ingrese numero'


IN AX,1
MULF 2A ; Multiplicacion de AX por lo que hay en 2A.
MSG 'RESULTADO'
OUT 1,AX
HLT
;MENU DE DIVISION
#70
MSG 'DIVISION'
MSG 'Ingrese numero'
IN AX,1
STF 2A
MSG 'Ingrese numero'
IN AX,1
STF 2C
LDF 2A
DIVF 2C ; Division de AX por lo que hay en 2A.
MSG 'RESULTADO'
OUT 1,AX
HLT
; DEFINIMOS VALORES A MEMORIA
#80
0000000000000001 ; Asignamos
0000000000000010 ; Asignamos
0000000000000011 ; Asignamos
0000000000000100 ; Asignamos

el
el
el
el

valor
valor
valor
valor

de
de
de
de

1
2
3
4

a
a
a
a

memoria
memoria
memoria
memoria

80
81
82
83

También podría gustarte