; _INIT_FPU: se encarga de llevar a cabo la inicialización de la FPU.
; Al llevarse a cabo la inicialización se producen los siguientes eventos:
;- FPUControlWord = 037FH;
;- FPUStatusWord = 0;
;- FPUTagWord = FFFFH;
;- FPUDataPointer = 0;
;- FPUInstructionPointer = 0;
;- FPULastInstructionOpcode = 0;
; Argumentos: instrucción = instrucción con la que se realizará la inicialización de la FPU.
segment .data
segment .bss
segment .text
global _init_FPU
_init_FPU:
enter 0, 0
push ebx
cmp dword [ebp + 8], 1 ;Compara si la instrucción debe realizar el chequeo.
jz Chequeo ;Si el resultado de la comparación es cero, implica que
;debe realizar la comparación.
FNINIT ;En caso contrario, se inicializa la FPU sin realizar el chequeo.
jmp Fin_Rutina ;Se salta al final de la rutina.
Chequeo:
FINIT ;Se inicializa la FPU realizando el chequeo.
Fin_Rutina:
pop ebx
mov eax, 0
leave
ret