首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EFLAGS是通用寄存器吗?

EFLAGS是通用寄存器吗?
EN

Stack Overflow用户
提问于 2017-05-08 12:49:57
回答 2查看 901关注 0票数 1

一些教程说EFLAGS寄存器是通用寄存器,而另一些教程则说它不是通用寄存器。

那么到底是哪一个呢?!

EN

回答 2

Stack Overflow用户

发布于 2017-05-08 18:27:56

不,

It is not because

  • 您不能直接对其进行寻址;没有MOV EFLAGS, Value指令。
  • 您不能使用EFLAGS执行计算。
  • 您不能在任何指令中将EFLAGS指定为显式的源或目标。

实际上,只有4条指令允许您将eflags寄存器作为一个整体进行寻址:PUSHFPOPFSAHFLAHF,甚至这些指令也只对寄存器中的一组有限位起作用。

事实上,eflags与通用寄存器的距离是最远的。它是一个特殊用途的状态寄存器。

票数 5
EN

Stack Overflow用户

发布于 2017-05-08 18:23:33

它们不是通用寄存器。而是“程序状态和控制寄存器”,如Intel's Documentation,卷A:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43839960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档