STAC

在 EFLAGS 登记册中设置 AC 旗

stableVMJITAOTinstruction

编码

操作码指令Op/En64 位兼容/传统说明
NP 0F 01 CBSTACZO有效有效在 EFLAGS 登记册中设置 AC 旗 。

实测开销

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

涉及的标志位

说明

设置 EFLAGS 寄存器中的 AC 旗位 。 这样可以对用户模式数据访问进行对齐检查。 这样即使SMAP比特被设置在CR4登记册中,也可以对用户-mode页面进行明确的主管-mode数据访问. 此指令的操作在非64位模式和64位模式中是相同的. 当CPL > 0导致#UD时,试图执行STAC.

行动

EFLAGS.AC := 1;

受影响的旗帜

AC设定. 其他旗帜不受影响.

异常

保护模式
#UD如果使用 LOCK 前缀,如果使用 CPL > 0,如果使用 CPUID.07H.00H: EBX.SMAP[20] = 0.
实地址模式
#UD如果使用 LOCK 前缀。如果 CPUID.07H.00H: EBX.SMAP[20] = 0.
虚拟 8086 模式
#UDSTAC指令在虚拟 8086 模式中不被识别.
兼容模式
#UD如果使用 LOCK 前缀,如果使用 CPL > 0,如果使用 CPUID.07H.00H: EBX.SMAP[20] = 0.
64 位模式
#UD如果使用 LOCK 前缀,如果使用 CPL > 0,如果使用 CPUID.07H.00H: EBX.SMAP[20] = 0.

来源