有没有办法得到寄存器的地址?例如,eax寄存器的地址(不是它的内容)。有没有办法得到寄存器的地址?
回答
寄存器是内部处理器存储。 他们没有内存地址,因为他们不驻留在内存。例如,您可以通过它们的名称来识别它们:EAX。这就是说,内存映射寄存器确实存在,但是在任何现代处理器中,它们都属于其他设备,从来都不是CPU。为方便起见,它们被分配了“假”内存地址。见memory-mapped I/O。
我会补充说,他们也没有映射到RAM。由于映射正在进行,因此许多硬件设备的寄存器都具有“地址”。这里唯一的一点是x86不会使这些寄存器变为可映射的。 – 2012-05-20 06:29:10
好点!和更多的字符 – slezica 2012-05-20 08:39:50
@ MahmoudAl-Qudsi:64位版本的架构也是如此吗? – user2284570 2016-09-05 20:57:04
寄存器是CPU电路内的物理电子组件。他们不在RAM中,所以没有地址。要访问它的内容,请使用mov
指令。
很好,很感谢这些答案 – jerome 2011-03-14 17:39:17
'寄存器是CPU电路内部的物理电子组件。对于case情况下的ʀᴀᴍ也是如此。 – user2284570 2016-09-05 20:58:28
已有架构使用低地址来指定CPU寄存器,如Univac 1100系列计算机。
http://en.wikipedia.org/wiki/UNIVAC_1100/2200_series
当前的x86硬件不工作的方式,这样你就不能获得EAX寄存器的地址 - 它只是没有一个。
一些微控制器仍然有内存映射寄存器,例如AVR(具有32个GP寄存器的8位RISC):http://www.avr-tutorials.com/general/avr-memory-map。 – 2017-09-19 02:38:15
- 1. 有没有办法获得CDT中的PC寄存器值?Eclipse
- 2. 有没有办法利用所有的XMM寄存器?
- 3. 有没有办法让sbcl打印出CPU寄存器的值?
- 4. 有没有办法在vim中区分两个寄存器?
- 5. x386,有没有办法使用另一个寄存器PUSH?
- 6. 有没有办法获得参考地址?
- 7. 有没有办法告诉浏览器加入地址栏以外的地址?
- 8. MIPS:将寄存器地址复制到另一个寄存器
- 9. 有没有办法在GDB中查看所有寄存器的特定值?
- 10. 68k寄存器地址
- 11. PCIe MSI地址寄存器
- 12. 从寄存器移动到有效地址
- 13. 有没有办法间接输入文本到地址栏?
- 14. Netsuite:有没有办法拥有专门的装运地址和帐单地址?
- 15. $ ESP寄存器没有找到
- 16. 有没有办法直接将一个寄存器的值写入文件?
- 17. 没有得到codeigniter的IP地址
- 18. 有没有办法获得维基百科网址的最终目的地?
- 19. 有没有办法让一个字大小在32位寄存器指令
- 20. 有没有办法获得与Windows Live ID关联的电子邮件地址?
- 21. 有没有什么办法可以在Rust中获得`struct`的地址?
- 22. 有没有办法得到没有CONNECTION变量的mysqli_error?
- 23. 有没有办法得到没有文本的UIDatePickerView?
- 24. getaddrinfo没有得到ipv6地址
- 25. 有没有办法获得连接到交换机的每个路由器的mac地址和ip?
- 26. 有没有办法找到我局域网内所有用户的IP地址?
- 27. 有没有办法根据地址生成位置的坐标?
- 28. 有没有办法用C ping特定的IP地址?
- 29. 有没有办法找到最近的交叉街道的地址?
- 30. 有没有办法从Bing SOAP Search Service获取地址?
你的意思是“寄存器的地址”是什么意思? – 2011-03-14 16:17:49