寄存器和指针

Registers and Pointers

你能在寄存器中存储内存地址以外的任何东西吗?我试图在 Google 上找到答案,但我发现的只是您可以存储指针。这意味着您也可以存储其他内容,但是您如何存储 64 位值,例如,如果寄存器只有 32 位长?

Can you store anything but memory addresses in a register?

没有。寄存器是 CPUs 现在实际用来操作的东西。

在您可能知道的大多数体系结构中,CPU 实际上并不关心寄存器的内容是否为地址,或者例如用于计算的整数。事实上,以某种方式计算地址是很常见的...

how could you store a 64-bit value, for example, if a register is only 32 bits long?

显然,不在该寄存器中。我不知道你指的是什么架构,但是对于好的 ol' x86(想想:PC)架构,有不同长度的不同寄存器,其中一些可能是 64 位或更长。

此外,如果您使用的 CPU 实际上没有足够大的寄存器来容纳您的数据类型,那么您需要将该数据类型加载到多个寄存器中或对其进行处理以某种方式顺序。