有没有办法获得寄存器的地址?

时间:2011-03-14 16:13:49

标签: assembly x86 memory-address

有没有办法获取寄存器的地址?例如,eax寄存器的地址(不是它的内容)。

3 个答案:

答案 0 :(得分:7)

有一些架构,其中使用低地址来指定CPU寄存器,例如Univac 1100系列计算机。

http://en.wikipedia.org/wiki/UNIVAC_1100/2200_series

当前的x86硬件不能正常工作,因此您无法获取EAX寄存器的地址 - 它只是没有。

答案 1 :(得分:6)

寄存器是内部处理器存储。 他们没有内存地址,因为它们不在内存中。您可以通过名称来识别它们:例如,EAX。

也就是说,内存映射寄存器确实存在,但在任何现代处理器中它们都属于其他设备,而不是CPU。为方便起见,它们被分配了“假的”内存地址。请参阅memory-mapped I/O

答案 2 :(得分:4)

寄存器是CPU电路内部的物理电气元件。它们不在RAM中,所以没有地址。要访问它的内容,请使用mov指令。