FLDCW

装入 x87 FPU 控制单词

stableVMJITAOTinstruction

编码

操作码指令Op/En64 位兼容/传统说明
D9 /5FLDCW m2byte有效有效从 m2字节装入 FPU 控制词 。

实测开销

正在从 arch-data 加载实测数据...

说明

将16位的 源操作数 装入 FPU 控制词中. 源操作数是一个内存位置. 此指令一般用于建立或改变FPU的运行模式.

如果在装入新的 FPU 控制词和新的控制词解析其中一个或多个例外之前,在FPU 状态词中设置了一个或多个例外旗帜,则在下个浮点指令执行时将生成一个浮点例外(无候浮点指令除外,见Intel(R)64和IA-32架构软件开发者手册第1卷第8章中题为"软件例外处理"的章节). 为了避免在更改 FPU 操作模式时提出例外,在加载新控制字之前清除任何待决例外(使用 FCLEX 或 FNCLEX 指令).

此指令的操作在非64位模式和64位模式中是相同的.

行动

FPUControlWord := SRC;

FPU Flags Affected
C0, C1, C2, C3 undefined.

浮点 例外

无;然而,这一操作可能会在FPU状态单词中解开一个待处理的例外. 然后在下一个"等待"浮点指令执行时生成这个例外.

异常

保护模式
#GP(0)如果 内存操作数 有效地址位于 CS,DS,ES,FS 或 GS 区段限制之外,则使用 DS,ES,FS 或 GS 寄存器访问内存,并包含 NULL 段选择子.
#SS(0)如果 内存操作数 的有效地址在 SS 段限制之外。
#NMCR0.EM[bit 2]或CR0.TS[bit 3] = 1. #PF(fault-code) 如果发生页面错误.
#AC(0)如果启用了对齐检查,并且在当前特权级别为3时会给出不对齐的内存引用.
#UD如果使用 LOCK 前缀 。
实地址模式
#GP如果内存操作数的有效地址在CS,DS,ES,FS或GS段限制之外.
#SS如果 内存操作数 的有效地址在 SS 段限制之外。
#NMCR0.EM[bit 2] 或 CR0.TS[bit 3] = 1.
#UD如果使用 LOCK 前缀 。
虚拟 8086 模式
#GP(0)如果内存操作数的有效地址在CS,DS,ES,FS或GS段限制之外.
#SS(0)如果 内存操作数 的有效地址在 SS 段限制之外。
#NMCR0.EM[bit 2]或CR0.TS[bit 3] = 1. #PF(fault-code) 如果发生页面错误.
#AC(0)如果启用对齐检查, 并使用不对齐的内存引用 。
#UD如果使用 LOCK 前缀 。
兼容模式
与保护模式中的例外相同.
64 位模式
#SS(0)如果引用SS部分的内存地址是非冠状的.
#GP(0)如果内存地址是非冠状的.
#NMCR0.EM[bit 2] 或 CR0.TS[bit 3] = 1.
#MF如果存在待决的x87 FPU例外. #PF(fault-code) 如果发生 页面错误.
#AC(0)如果启用了对齐检查,并且在当前特权级别为3时会给出不对齐的内存引用.
#UD如果使用 LOCK 前缀 。

来源