Anda di halaman 1dari 3

A continuacin veremos el cdigo, que fue utilizado para la

programacin de la calculadora.
Programa en Assembler

#SimuProc 1.4.3.0

MSG CALCULADORA BASICA


MSG ''
MSG MENU PRINCIPAL
MSG
MSG 1 = SUMA
MSG 2 = RESTA
MSG 3 = MULTIPLICACIN
MSG 4 = DIVISIN
MSG ''
LDT SELECCIONE OPERACION :; Leemos un digito
CMP 80 ;Comparamos el digito leido con lo 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 el digito leido con lo preestablecido en memoria 80, que
es 2.
JEQ 50 ;Si son iguales salte a la memoria 50 ejecute a partir de hay.
; de lo contrario ...
CMP 82 ;Comparamos el digito leido con lo preestablecido en memoria 80,
que es 3.
JEQ 60 ;Si son iguales salte a la memoria 60 ejecute a partir de hay.
; de lo contrario ...
CMP 83 ;Comparamos el digito leido con lo preestablecido en memoria 80,
que es 4.
JEQ 70 ;Si son iguales salte a la memoria 70 ejecute a partir de hay.
; de lo contrario ...
MSG LA OPCION DEBE ESTAR ENTRE 1 Y 4
JMP 0 ;Salta a la posicion 0, es decir al inicio del programa

;OPCION 1 SUMA
#40
MSG SUMA
MSG Ingrese primer numero :
IN AX,1 ; Lee de puerto 1 (teclado)
; esta instruccion remplaza a "LTD".
STF 2A ; Almacena el numero en 2A
MSG Ingrese segundo numero :
IN AX,1 ; Capturamos segundo numero y queda en AX.
ADDF 2A ; Suma AX el numero guardado en 2A.
MSG Respuesta :
OUT 1,AX ; Imprimimos en puerto 1 (pantalla) el resultado.
HLT ; Termina programa.
;OPCION 2 RESTA

#50
MSG RESTA
MSG Ingrese primer numero :
IN AX,1
STF 2A
MSG Ingrese segundo numero :
IN AX,1
STF 2C ; Almacena el numero de 32 bits en 2C y 2D donde almacena la parte
decimal
LDF 2A ; Carga en AX la memoria 2A.
SUBF 2C ; Resta a AX el valor de 2C
MSG Respuesta :
OUT 1,AX
HLT

;OPCION 3 MULTIPLICACION
#60
MSG MULTIPLICACION
MSG Ingrese primer numero :
IN AX,1
STF 2A
MSG Ingrese segundo numero :
IN AX,1
MULF 2A ; Multiplicacion de AX por lo que hay en 2A.
MSG Respuesta :
OUT 1,AX
HLT

;OPCION 4 DIVISION
#70
MSG DIVISION
MSG Ingrese primer numero :
IN AX,1
STF 2A
MSG Ingrese segundo numero :
IN AX,1
STF 2C
LDF 2A
DIVF 2C ; Division de AX por lo que hay en 2A.
MSG Respuesta :
OUT 1,AX
HLT

; VALORES INICIALES DE MEMORIA


#80
0000000000000001 ; Asignamos el valor de 1 a memoria 80
0000000000000010 ; Asignamos el valor de 2 a memoria 81
0000000000000011 ; Asignamos el valor de 3 a memoria 82
0000000000000100 ; Asignamos el valor de 4 a memoria 83