SAHF
存储 AH 输入旗帜
stableVMJITAOTinstruction
编码
| 操作码 | 指令 | Op/En | 64 位 | 兼容/传统 | 说明 |
|---|---|---|---|---|---|
9E | SAHF | ZO | invalid* | 有效 | 从AH装入SF,ZF,AF,PF,以及CF从AH装入EFLAGS登记册. |
实测开销
正在从 arch-data 加载实测数据...
涉及的标志位
CF进位PF奇偶AF辅助进位ZF零SF符号
说明
装入 EFLAGS 寄存器的 SF, ZF, AF, PF, 和 CF 旗, 其值来自 AH 寄存器中的相应位数(分别为位数 7, 6, 4, 2和 0). 注册号AH的位数1,3和5被忽略;EFLAGS注册号中相应的保留位数(1,3和5)仍然如下文"操作"部分所示.
本指令在兼容模式和遗留模式中执行如上所述. 只有在 CPUID.80000001H: ECX.LAHF_SAHF_64[0] = 1.
行动
IF IA-64 Mode
THEN
IF CPUID.80000001H:ECX[0] = 1;
THEN
RFLAGS(SF:ZF:0:AF:0:PF:1:CF) := AH;
ELSE
#UD;
FI
ELSE
EFLAGS(SF:ZF:0:AF:0:PF:1:CF) := AH;
FI;受影响的旗帜
SF,ZF,AF,PF,和CF旗都从AH登记册中加载值. EFLAGS 寄存器中的位数1,3和5不受影响,其值分别剩余1,0和0.
异常
保护模式
| 无。 |
实地址模式
| 无。 |
虚拟 8086 模式
| 无。 |
兼容模式
| 无。 |
64 位模式
#UD | 如果 CPUID.80000001H: ECX.LAHF_SAHF_64[0] = 0. 如果使用 LOCK 前缀. |