FLDCW - 載入 x87 FPU 控制字

操作碼

指令

說明

D9 /5

FLDCW m2byte

m2byte 中載入 FPU 控制字

說明

將 16 位源運算元載入到 FPU 控制字。源運算元是一個記憶體位置。此指令通常用於設定或更改 FPU 的操作模式。

如果在載入新的 FPU 控制字之前,FPU 狀態字中設定了一個或多個異常標誌,並且新的控制字取消了一個或多個異常的掩碼,則執行下一條浮點指令(無等待浮點指令除外,請參閱“IA-32 英特爾(R) 體系結構軟件開發人員手冊”第 1 卷第 7 章中標題為“軟體異常處理”的部分)時,將產生浮點異常。要避免在更改 FPU 操作模式時觸發異常,請在載入新的控制字之前,清除任何未決的異常(使用 FCLEX 或 FNCLEX 指令)。

操作

FPUControlWord SRC;

影響的 FPU 標誌

C0、C1、C2、C3 - 未定義。

浮點異常

無;不過此操作可能取消 FPU 狀態字中未決異常的掩碼。隨後在執行下一條“等待”浮點指令時,將產生該異常。

保護模式異常

#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) - 如果在啟用對齊檢查的情況下進行未對齊的記憶體引用。