FILD
装入整数
stableVMJITAOTinstruction
编码
| 操作码 | 指令 | Op/En | 64 位 | 兼容/传统 | 说明 |
|---|---|---|---|---|---|
DF /0 | FILD m16int | 有效 | 有效 | 将 m16int 推到 FPU 寄存器堆栈 。 | |
DB /0 | FILD m32int | 有效 | 有效 | 将 m32int 推到 FPU 寄存器堆栈 。 | |
DF /5 | FILD m64int | 有效 | 有效 | 将 m64int 推到 FPU 寄存器堆栈 。 |
实测开销
正在从 arch-data 加载实测数据...
说明
将已签名的 源操作数 转换成双倍扩展精度 浮点 格式,并将值推向 FPU 寄存器堆栈 。 源操作数可以是单词,双词,也可以是四字整数. 它装入时没有四舍五入错误。 源操作数的标志保存下来.
此指令的操作在非64位模式和64位模式中是相同的.
行动
TOP := TOP - 1;
ST(0) := ConvertToDoubleExtendedPrecisionFP(SRC);
FPU Flags Affected
C1 Set to 1 if stack overflow occurred; set to 0 otherwise.
C0, C2, C3 Undefined.浮点 例外
#IS Stack overflow occurred.异常
保护模式
#GP(0) | 如果 内存操作数 的有效地址位于 CS,DS,ES,FS 或 GS 区段限制之外,如果 DS,ES,FS,或 GS 注册簿中包含 NULL 段选择子. |
#SS(0) | 如果 内存操作数 的有效地址在 SS 段限制之外。 |
#NM | CR0.EM[bit 2]或CR0.TS[bit 3] = 1. #PF(fault-code) 如果发生页面错误. |
#AC(0) | 如果启用了对齐检查,并且在当前特权级别为3时会给出不对齐的内存引用. |
#UD | 如果使用 LOCK 前缀 。 |
实地址模式
#GP | 如果内存操作数的有效地址在CS,DS,ES,FS或GS段限制之外. |
#SS | 如果 内存操作数 的有效地址在 SS 段限制之外。 |
#NM | CR0.EM[bit 2] 或 CR0.TS[bit 3] = 1. |
#UD | 如果使用 LOCK 前缀 。 |
虚拟 8086 模式
#GP(0) | 如果内存操作数的有效地址在CS,DS,ES,FS或GS段限制之外. |
#SS(0) | 如果 内存操作数 的有效地址在 SS 段限制之外。 |
#NM | CR0.EM[bit 2]或CR0.TS[bit 3] = 1. #PF(fault-code) 如果发生页面错误. |
#AC(0) | 如果启用对齐检查, 并使用不对齐的内存引用 。 |
#UD | 如果使用 LOCK 前缀 。 |
兼容模式
| 与保护模式中的例外相同. |
64 位模式
#SS(0) | 如果引用SS部分的内存地址是非冠状的. |
#GP(0) | 如果内存地址是非冠状的. |
#NM | CR0.EM[bit 2] 或 CR0.TS[bit 3] = 1. |
#MF | 如果存在待决的x87 FPU例外. #PF(fault-code) 如果发生 页面错误. |
#AC(0) | 如果启用了对齐检查,并且在当前特权级别为3时会给出不对齐的内存引用. |
#UD | 如果使用 LOCK 前缀 。 |