Você está na página 1de 1

#SimuProc 1.4.3.

MSG
MSG 'Entre un numero para Calcularle la Raiz Cuadrada'
IN AX,1 ;Leo el numero al que le calculare la Raiz Cuadrada
STF 2A ;Grabo el numero en la dir 2A y 2B
LDF 30 ;Cargo el numero 1 en los registros
STF 2E ;y = 1
LDF 32 ;Cargo el numero 2 en los registros
STF 2C ;raiz = 2

;Aca comienza el Bucle MQ

LDF 2E ;Cargo y en los registros


SUBF 2C ;Comparo 'y' con Raiz (Nota, puedo usar SUBF para
las comparaciones con numeros IEEE 754)

JEQ 17 ;Si son iguales, salto al fin del ciclo


LDF 2C ;Cargo Raiz en registros
ADDF 30 ;Le sumo 1
SUBF 2E ;Comparo Raiz+1 con 'y' (con la resta en los
registros de control quedan los resultados, para luego tomar la decision)

JEQ 17 ;si raiz+1 es igual a 'y', salto al fin del ciclo


;terminada la condicion, ejecuto lo que esta dentro del bucle MQ
LDF 2E ;Cargo 'y' en registros
STF 2C ;raiz = y
LDF 2A ;Cargo en registros, numero
DIVF 2E ;Registros = numero / y
ADDF 2E ;Registros = Registros + y
DIVF 32 ;Registros = Registros / 2
STF 2E ;y = al valor de los registros BX y AX
JMP 8 ;Vuelvo al Ppio del Ciclo (FIN CICLO)

LDF 2C ;Cargo el valor de raiz en registros BX y AX


MSG 'La Raiz es:'
OUT 1,AX ;Muestro la raiz calculada
HLT ;Termina el programa

;Inicializo las constantes 1 y 2 en IEEE 754

#30
0011111110000000 ;Inicializo el Numero 1 en la dir 30 y 31
0000000000000000
0100000000000000 ;numero 2 en la dir 32 y 33
0000000000000000

Você também pode gostar