寄存器和指针
问题描述:
你可以在寄存器中存储除存储器地址以外的任何内容吗?我试图在谷歌上找到答案,但我发现的是,你可以存储指针。这意味着你也可以存储其他的东西,但是如何存储一个64位的值,例如,如果一个寄存器只有32位长,寄存器和指针
答
你能存储除寄存器地址以外的任何东西吗?
不可以。寄存器是CPU现在用来操作的东西。
在你可能知道的大多数体系结构中,CPU实际上并不关心寄存器的内容是地址还是计算的整数。实际上,通常看到地址是以某种方式计算出来的......
如何存储64位值,例如,如果寄存器只有32位长?
很明显,不在该注册表中。我不知道你指的是什么架构,但是对于x86架构来说,不同的寄存器具有不同的长度,其中一些寄存器可能是64位或更长的。另外,如果你在一个实际上没有足够数据类型的寄存器的CPU上,那么你需要将这个数据类型加载到多个寄存器中或以某种方式顺序处理它。
+0
是的,我指的是x86架构。 – couchPotato
对于32位寄存器,则需要将64位数据分成两个寄存器 –