如何在CPU寄存器数量有限的情况下在寄存器中存储更多变量

如何在CPU寄存器数量有限的情况下在寄存器中存储更多变量

在一次面试中,有人问我,如果处理器只有 4 个 CPU 寄存器,我们是否可以在 CPU 寄存器中存储 5 个变量。我自信地回答“否”,然后面试官给了我一个奇怪的表情。


我的问题是,如果寄存器和变量的大小是1. 相同
2. 不同,那么是否可以在 CPU 寄存器中存储比实际 CPU 寄存器数量更多的变量

答案1

实际上你可以:

  • 如果变量小于寄存器。在 x86 中,甚至有寄存器可以“查看”其他寄存器 - AX = AH + AL,等等
  • (奇特)如果提到的 4 个寄存器是通用寄存器,并且可验证大小与寄存器相同 - 可能还有一个指令指针寄存器,因此像地址一样跳转到第五个变量 - 并且在崩溃之前的一段时间内,所有 5 个变量都会存储在寄存器中

相关内容