EMMS
空 MMX 技术状态
stableVMJITAOTinstruction
编码
| 操作码 | 指令 | Op/En | 64 位 | 兼容/传统 | 说明 |
|---|---|---|---|---|---|
NP 0F 77 | EMMS | ZO | 有效 | 有效 | 将 x87 FPU 标记单词设为空 。 |
实测开销
正在从 arch-data 加载实测数据...
说明
将 x87 FPU 标签单词中所有标记的值设置为空( 所有 1s) 。 这一操作标记了x87 FPU数据登记册(该登记册被MMX技术登记册所别名)可供x87 FPU 浮点指令使用. (参见Intel(R)64和IA-32架构软件开发者手册第1卷中的图8-7,关于x87 FPU标签单词的格式. ) 所有其他MMX指令(除EMMS指令外)将x87 FPU标签单词中的所有标签设置为有效(所有0s).
EMMS指令必须用于清除所有MMX技术程序或子例程末端的MMX技术状态,并在调用可能执行x87 浮点指令的其他程序或子例程之前. 如果一个 浮点 指令在 x87 FPU 数据寄存器堆栈中加载一个登记器,在 X87 FPU 标记词被 EMMS 指令重置之前,一个 x87 浮点 寄存器堆栈溢出,将会导致 x87 浮点 例外或不正确的结果.
EMMS操作在非64位模式和64位模式中是相同的.
行动
x87FPUTagWord := FFFFH;Intel C/C++ 内在编译器
void _mm_empty();受影响的旗帜
None
异常
保护模式
#UD | 如果 CR0.EM[bit 2] = 1. |
#NM | 如果 CR0.TS[bit 3] = 1. |
#MF | 如果存在待决的 FPU 例外 。 |
#UD | 如果使用 LOCK 前缀 。 |
实地址模式
| 与保护模式中的例外相同. |
虚拟 8086 模式
| 与保护模式中的例外相同. |
兼容模式
| 与保护模式中的例外相同. |
64 位模式
| 与保护模式中的例外相同. |