操作碼 |
指令 |
說明 |
9B DB E3 |
FINIT |
檢查未決的無掩碼浮點異常之後初始化 FPU。 |
DB E3 |
FNINIT |
初始化 FPU,而不檢查未決的無掩碼浮點異常。 |
將 FPU 控制、狀態、標記、指令指針及數據指針暫存器設定為它們的預設狀態。FPU 控制字設定為 037FH(就近取整、遮蔽所有的異常、64 位精度)。狀態字被清除(不設定任何異常標誌、TOP 設定為 0)。暫存器堆疊中的數據暫存器保持不變,但它們都標記為空 (11B)。指令與數據指針都被清除。
FINIT 指令會在執行初始化之前,檢查並處理任何未決的無掩碼浮點異常;FNINIT 指令則不會。
在 MS-DOS* 操作系統相容模式中操作奔騰(R) 或 Intel486™ 處理器時,FNINIT 指令(在特殊的情況下)可能會在執行(以便處理未決的 FPU 異常)之前中斷。如需有關這些情況的說明,請參閱“IA-32 英特爾(R) 體系結構軟件開發人員手冊”第 1 卷附錄 D 中標題為“無等待 FPU 指令可以在視窗中發生 FPU 中斷”的部分。在奔騰 Pro 處理器上,FNINIT 指令不能以此方式中斷。
在 Intel387 數學協處理器中,FINIT/FNINIT 指令不清除指令與數據指針。
此指令隻影響 x87 FPU。它不影響 XMM 與 MXCSR 暫存器。
FPUControlWord 037FH;
FPUStatusWord 0;
FPUTagWord FFFFH;
FPUDataPointer 0;
FPUInstructionPointer 0;
FPULastInstructionOpcode 0;
C0、C1、C2、C3 清除為 0。
無。
#NM - 如果 CR0 中的 EM 或 TS 設定為 1。
#NM - 如果 CR0 中的 EM 或 TS 設定為 1。
#NM - 如果 CR0 中的 EM 或 TS 設定為 1。