EMMS

空 MMX 技术状态

stableVMJITAOTinstruction

编码

操作码指令Op/En64 位兼容/传统说明
NP 0F 77EMMSZO有效有效将 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 位模式
与保护模式中的例外相同.

来源