Assembly LAHF(用标志寄存器的低位字节加载AH)
使用Assembly LAHF(用标志寄存器的低位字节加载AH),assembly,x86,flags,Assembly,X86,Flags,使用LAHF可以使用标志寄存器的高阶字节加载AH寄存器 标志寄存器有7个未定义的寄存器。我有两个问题: LAHF操作中是否考虑了未定义位 如果考虑,标志寄存器中的未定义位是作为二进制1还是二进制0 标志SF、ZF、AF、PF和CF分别复制到AH位7、6、4、2和0。AH的剩余位5、3和1的内容通常被认为是未定义的。如果您查看较旧的指令集,例如 然而,最近的详细说明了LAHF的显式位状态: Operation AH ← EFLAGS(SF:ZF:0:AF:0:PF:1:CF); “未定义”表示保
LAHF
可以使用标志寄存器的高阶字节加载AH寄存器
标志寄存器有7个未定义的寄存器。我有两个问题:
标志SF、ZF、AF、PF和CF分别复制到AH位7、6、4、2和0。AH的剩余位5、3和1的内容通常被认为是未定义的。如果您查看较旧的指令集,例如 然而,最近的详细说明了LAHF的显式位状态:
Operation
AH ← EFLAGS(SF:ZF:0:AF:0:PF:1:CF);
“未定义”表示保留位用于将来的指令集扩展。不应以任何方式依赖它们。也就是说,不要假设未定义的位已设置,也不要假设它们未设置。因此,在执行lahf指令时不考虑它们?如果您的代码在较新的处理器上执行,则可能会考虑这些位(lahf指令的含义自然会扩展到包括这些位的副本)。您不应该编写任何代码,无论它们是否在观测上表现不同。