EFLAGS 是通用寄存器吗?

Ste*_*eve 1 x86 assembly cpu-registers

有些教程说EFLAGS寄存器是通用寄存器,而其他教程说它不是通用寄存器。

那么是哪一个呢?!

Joh*_*ica 5

不,

这不是因为

  • 你不能直接解决它;没有MOV EFLAGS, Value说明。
  • 您不能使用 执行计算EFLAGS
  • 您不能EFLAGS在任何指令中指定为显式源或目标。

事实上,只有4个指令,让您解决eflags寄存器作为一个整体:PUSHFPOPFSAHF,和LAHF 甚至这些指令只在寄存器中的一组有限的比特行事。

事实上,eflags它离通用寄存器尽可能远。它是一个特殊用途的状态寄存器。