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

问题描述 投票:0回答:3

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

assembly x86 memory-address cpu-registers
3个回答
8
投票

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

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


7
投票

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

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

当前的 x86 硬件无法以这种方式工作,因此您无法获取 EAX 寄存器的地址 - 它只是没有。


4
投票

寄存器是CPU电路内部的物理电子元件。它们不在 RAM 中,因此没有地址。要访问其内容,请使用

mov
指令。

© www.soinside.com 2019 - 2024. All rights reserved.