一些教程说EFLAGS寄存器是通用寄存器,而其他教程说它不是通用寄存器。到底是哪个!
EFLAGS
mxg2im7a1#
不,It is not because:
MOV EFLAGS, Value
实际上,只有4条指令允许您将eflags寄存器作为一个整体进行寻址:PUSHF、POPF、SAHF和LAHF即使这些指令也只作用于寄存器内有限的一组位。事实上,eflags与通用寄存器的距离是最远的。这是一个特殊用途的状态寄存器。
eflags
PUSHF
POPF
SAHF
LAHF
muk1a3rh2#
它们不是通用寄存器。而是Intel's Documentation的“程序状态和控制寄存器”,卷A(第3.4.1节,第73页):
2条答案
按热度按时间mxg2im7a1#
不,
It is not because:
MOV EFLAGS, Value
指令。EFLAGS
执行计算。EFLAGS
指定为显式源或目标。实际上,只有4条指令允许您将
eflags
寄存器作为一个整体进行寻址:PUSHF
、POPF
、SAHF
和LAHF
即使这些指令也只作用于寄存器内有限的一组位。事实上,
eflags
与通用寄存器的距离是最远的。这是一个特殊用途的状态寄存器。muk1a3rh2#
它们不是通用寄存器。而是Intel's Documentation的“程序状态和控制寄存器”,卷A(第3.4.1节,第73页):