Intel 253666-024US Manuel D’Utilisation

Page de 760
3-332 Vol. 2A
FINIT/FNINIT—Initialize Floating-Point Unit
INSTRUCTION SET REFERENCE, A-M
FINIT/FNINIT—Initialize Floating-Point Unit
Description
Sets the FPU control, status, tag, instruction pointer, and data pointer registers to 
their default states. The FPU control word is set to 037FH (round to nearest, all 
exceptions masked, 64-bit precision). The status word is cleared (no exception flags 
set, TOP is set to 0). The data registers in the register stack are left unchanged, but 
they are all tagged as empty (11B). Both the instruction and data pointers are 
cleared.
The FINIT instruction checks for and handles any pending unmasked floating-point 
exceptions before performing the initialization; the FNINIT instruction does not.
The assembler issues two instructions for the FINIT instruction (an FWAIT instruction 
followed by an FNINIT instruction), and the processor executes each of these instruc-
tions in separately. If an exception is generated for either of these instructions, the 
save EIP points to the instruction that caused the exception.
This instruction’s operation is the same in non-64-bit modes and 64-bit mode.
IA-32 Architecture Compatibility
When operating a Pentium or Intel486 processor in MS-DOS compatibility mode, it is 
possible (under unusual circumstances) for an FNINIT instruction to be interrupted 
prior to being executed to handle a pending FPU exception. See the section titled 
“No-Wait FPU Instructions Can Get FPU Interrupt in Window” in Appendix D of the 
Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 1, for a 
description of these circumstances. An FNINIT instruction cannot be interrupted in 
this way on a Pentium 4, Intel Xeon, or P6 family processor.
In the Intel387 math coprocessor, the FINIT/FNINIT instruction does not clear the 
instruction and data pointers.
This instruction affects only the x87 FPU. It does not affect the XMM and MXCSR 
registers.
Opcode
Instruction
64-Bit 
Mode
Compat/
Leg Mode
Description
9B DB E3
FINIT
Valid
Valid
Initialize FPU after checking for pending 
unmasked floating-point exceptions.
DB E3
FNINIT
*
Valid
Valid
Initialize FPU without checking for 
pending unmasked floating-point 
exceptions.
NOTES:
* See IA-32 Architecture Compatibility section below.