Dan*_*nny 3 x86 assembly flags
使用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);
Run Code Online (Sandbox Code Playgroud)