LAHF(使用标志寄存器的低阶字节加载AH)



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

标志寄存

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

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

标志 SF、ZF、AF、PF 和 CF 分别复制到 AH 位 7、6、4、2 和 0。AH 的其余位 5、3 和 1 的内容通常被接受为未定义。如果您查看较旧的指令集,例如 80386 指令集,则情况确实如此。

然而,最新的 IA-32 英特尔®架构软件开发人员手册第 2 卷:指令集参考详细说明了 LAHF 的显式位状态:

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

最新更新