寄存器有地址吗
我们知道所谓寄存器就是在cpu内部保存数据的地方. 问下我们天天用的通用寄存器eax,ebx,ecx他们有具体的地址吗?
个人感觉这些寄存器好像是某个东西的别名. 请这方面的高手指点下.
[ 本帖最后由 怪怪虎 于 2008-8-25 22:17 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
地址是针对存储来说的,寄存器可以映射到内存。
x86的浮点寄存器和MMX寄存器(还是XMM啊,记不请了)就是重叠的,也就是别名。ax和eax可以说是别名。此外,SPARC有寄存器窗口。
看从哪方面来看,从存储方面来看是没有地址,
从数据通路方面看寄存器是有编址的
我们可以知道寄存器映射的地址吗? 还有汇编是如何解析这些寄存器的?
今天晚上看了下一个叫ATtiny13 控制器的说明文档,看到有些寄存器有地址,有些没有.弄的自己一头雾水.望赐教.
对不起,没听说过ATtiny13。不过有地址的读写地址,没地址的操作寄存器,这样可以吗?
我也只是想通过ATtiny13中介绍的一些原理来理解寄存器的概念.(结果失败了).
eax/ebx 之类的通用寄存器是没有地址的,对不?
另外在请教下,站在一个不高不低的软件层次上,如何来学习一个芯片?
不高不低的解释:不从硬件的电路图看待硬件,也不从简单的out/in指令看待硬件.
mik的回答层次比较深,不过按照你的立场eax/ebx 之类的通用寄存器是没有地址的。
按照你的立场,学习一个芯片,比如MIPS,无非是学习使用MIPS的ISA。
MIPS倒是看过一点资料.不知道ISA是不是我们说的总线.
其实我就是想知道芯片是怎样相互协调完成我们的请求的服务的. 这个让我苦思了好长时间,也没找到一个圆满的答案.
兄台能够给些建议.
ISA是指令集
芯片是怎样相互协调完成我们的请求的服务的?芯片可没有智能,通过程序的指令控制完成的,也就是人指挥的。最常见的就是中断,中断指令。
给你说说数据通路的概念:一条指令执行的通路
简单的:ALU 和 寄存器堆及存储器,寄存器堆是寄存器集合,
根据PC读出指令,读寄存器时寄存器编号送达寄存器堆组织,经流ALU计算,结果送存储器等。
偶的概念也不是那么清晰,也许说得不对,
建议看看《computer organization & design -- the hardware/software interface 》 一书,这书非常好