【发布时间】:2013-12-29 02:04:10
【问题描述】:
这是一个关于现代 CPU 架构的非常低级的问题。 我了解到我可以在 64 位模式下使用更多额外的寄存器。 比如ARM架构有r15-r31通用寄存器,对于Intel/AMD r8-r15通用寄存器。 SIMD 寄存器也会像 xmm8-xmm15(或 ymm8-ymm15)一样翻倍
有谁知道在 64 位模式下怎么可能?
我不期望像“他们只是建立了更多的寄存器”这样简单的答案 因为在 32 位模式下,我不能使用那个额外的寄存器。 即使是那些额外的寄存器也没有被现代编译器完全使用。
【问题讨论】:
-
...它们不可用于 32 位模式。指令的编码在 64 位模式下是不同的,允许对更多的寄存器进行编码。将寄存器添加到 32 位模式会破坏机器代码的兼容性。
-
有关“长”答案,请参阅stackoverflow.com/a/5556505/2864740 和链接/引用的资源。
标签: architecture cpu-registers