SAHF

存储 AH 输入旗帜

stableVMJITAOTinstruction

编码

操作码指令Op/En64 位兼容/传统说明
9ESAHFZOinvalid*有效从AH装入SF,ZF,AF,PF,以及CF从AH装入EFLAGS登记册.

实测开销

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

涉及的标志位

说明

装入 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 前缀.

来源