回答
它们不是通用寄存器。而是, “程序状态和控制寄存器” 作为Intel's Documentation,卷A:
我甚至会说“ESP”不是“通用寄存器”,因为它必须**指向堆栈。 –
@MartinRosenau,不,它不会,RSP可以指向任何东西。应用程序可以选择放弃使用堆栈。如果是这样,您可以将RSP用于任何您喜欢的目的。 – Johan
@Johan“通用”一词意味着某物可用于任何目的。事实上,当CPL = 3时,ESP寄存器可能有任何值 - 但只有当您不使用“call”或“push”指令时!但是,当CPL = 0时,ESP必须指向堆栈:如果发生任何中断,ESP寄存器中的无效值(例如指向非映射地址)肯定会导致CPU因“三重故障”而复位! (例如NMI。)这就是为什么我说ESP不是一个“通用目的”寄存器。 –
- 1. x86_64上的gdb eflags寄存器
- 2. 这是$ 0x1a寄存器吗?
- 3. 通用寄存器
- 4. 如何更改GDB中的eflags寄存器值?
- 5. IA32-86使用专用寄存器作为通用寄存器
- 6. 通用寄存器 - 订购
- 7. 使用FPU和MMX寄存器作为“通用寄存器”
- 8. 使用xmm寄存器保存通用目录是否安全?
- 9. 反正有用C访问ARM的通用寄存器吗?
- 10. EFLAGS寄存器中的进位标志和溢出标志的用途是什么?
- 11. AutoFac寄存器通用类型明确
- 12. MIPS中的浮点寄存器是哪些数字寄存器?
- 13. XOR寄存器,寄存器(汇编)
- 14. X86操作码将xmm寄存器移动到通用寄存器
- 15. 什么是通用寄存器的一些特殊用途
- 16. 什么是专用寄存器?
- 17. 通用寄存器的内容是什么?
- 18. 寄存器JS
- 19. 编译器通常使用寄存器来实现其“预期”目的吗?
- 20. 寄存器通过strophe.register.js不工作
- 21. 通过LLVM IR控制x86寄存器?
- 22. 推送寄存器纯粹用于短期保存可以吗?
- 23. 无效使用寄存器
- 24. 指令指针是一个程序可见的寄存器吗?
- 25. 得到TypeScript生成命名的寄存器,而不是匿名寄存器
- 26. ERLANG - wxGrid寄存器
- 27. 寄存器读取
- 28. 寄存器值8086
- 29. Directx 11寄存器
- 30. Modbus TCP寄存器
这不是一个通用的注册表。它实际上是一个状态寄存器。 –
https://en.wikipedia.org/wiki/FLAGS_register –