问题
Is there is a way to get the address of a register? For example, the address of the eax register (not it's content).
回答1:
There has been architectures where low addresses were used to designate CPU registers, like the Univac 1100 series of computers.
http://en.wikipedia.org/wiki/UNIVAC_1100/2200_series
Current x86 hardware doesn't work that way, so you cannot get the address of the EAX register - it just doesn't have one.
回答2:
Registers are the internal processor storage. They do not have memory addresses, because they do not reside in memory. You identify them by their names: EAX, for example.
That said, memory-mapped registers do exist, but in any modern processor they belong to other devices, never the CPU. They are assigned "fake" memory addresses for convenience. See memory-mapped I/O.
回答3:
Registers are physical electrical components inside the CPU's circuitry. They are not in RAM and so have no address. To access it's contents you use the mov instruction.
来源:https://stackoverflow.com/questions/5301292/is-there-is-a-way-to-get-the-address-of-a-register