FSTCW/FNSTCW - 儲存 x87 FPU 控制字

操作碼

指令

說明

9B D9 /7

FSTCW m2byte

檢查未決的無掩碼浮點異常之後,將 FPU 控制字儲存到 m2byte

D9 /7

FNSTCW* m2byte

將 FPU 控制字儲存到 m2byte,不檢查未決的無掩碼浮點異常。

說明

將 FPU 控制字的當前值儲存到記憶體中指定的目標。在儲存控制字之前,FSTCW 指令檢查並處理未決的無掩碼浮點異常,FNSTCW 指令則不會。

英特爾(R) 體系結構相容性

在 MS-DOS* 操作系統相容模式中操作奔騰(R) 或 Intel486™ 處理器時,FNSTCW 指令(在特殊的情況下)可能會在執行(以便處理未決的 FPU 異常)之前中斷。如需有關這些情況的說明,請參閱“IA-32 英特爾(R) 體系結構軟件開發人員手冊”第 1 卷附錄 D 中標題為“無等待 FPU 指令可以在視窗中發生 FPU 中斷”的部分。在奔騰 Pro 處理器上,FNSTCW 指令不能以此方式中斷。

操作

DEST FPUControlWord;

影響的 FPU 標誌

C0、C1、C2 及 C3 標誌未定義。

浮點異常

無。

保護模式異常

#GP(0) - 如果目標位於不可寫的段。如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。如果 DS、ES、FS、或 GS 暫存器用於訪問記憶體,並且它包含空的段選擇器。

#SS(0) - 如果記憶體運算元有效地址超出 SS 段限制。

#NM - 如果 CR0 中的 EM 或 TS 設定為 1。

#PF(錯誤程式碼) - 如果發生頁錯誤。

#AC(0) - 如果啟用對齊檢查並在目前特權級別為 3 時進行未對齊的記憶體引用。

實地址模式異常

#GP - 如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。

#SS - 如果記憶體運算元有效地址超出 SS 段限制。

#NM - 如果 CR0 中的 EM 或 TS 設定為 1。

虛 8086 模式異常

#GP(0) - 如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。

#SS(0) - 如果記憶體運算元有效地址超出 SS 段限制。

#NM - 如果 CR0 中的 EM 或 TS 設定為 1。

#PF(錯誤程式碼) - 如果發生頁錯誤。

#AC(0) - 如果在啟用對齊檢查的情況下進行未對齊的記憶體引用。