All pastes #885062 Raw Edit

Miscellany

public text v1 · immutable
#885062 ·published 2008-01-30 19:14 UTC
rendered paste body
; _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