LAHF(加载带有标志寄存器低位字节的AH)

时间:2014-02-07 11:29:19

标签: assembly x86 flags

使用LAHF AH寄存器可以加载标志寄存器的高位字节。

标志寄存器有7个未定义的寄存器。我有两个问题:

  1. LAHF操作中是否考虑了未定义的位?
  2. 如果考虑,是否将标志寄存器中的未定义位视为二进制1或二进制0?

1 个答案:

答案 0 :(得分:6)

标志SF,ZF,AF,PF和CF分别被复制到AH位7,6,4,2和0。 AH的剩余比特5,3和1的内容通常被认为是未定义的。如果您查看较旧的指令集,例如80386一个。

,则会出现这种情况

然而,最近的 IA-32 Intel® Architecture Software Developer’s Manual Volume 2: Instruction Set Reference 为LAHF解释了明确的位状态:

Operation
AH ← EFLAGS(SF:ZF:0:AF:0:PF:1:CF);