免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 怪怪虎

寄存器有地址吗 [复制链接]

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
发表于 2008-08-31 22:51 |显示全部楼层
原帖由 jamesr 于 2008-8-31 22:32 发表
CPU寄存器是没有地址的(所谓的地址是内存地址),但外部芯片(PCI控制器,内存控制器……)的寄存器是可以映射到一段地址上的(通常也是这么做的)。

CPU寄存器是有内部编码的,在二进制的指令中是有相应的 ...

不,其实很多的CPU内部的大部分寄存器都是通过地址访问的(这里的地址是指访问内存的那种地址)
其实说白了,地址就是一个个的“片选”信号,没什么特殊的。可以在片内就解决掉这些“片选”的含义。

论坛徽章:
0
发表于 2008-08-31 23:29 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
发表于 2008-08-31 23:46 |显示全部楼层
原帖由 jamesr 于 2008-8-31 23:29 发表


难道X86是这样设计的?
我说的是MIPS等RISC上的寄存器,都直接编码在指令里了。

CPU上会有很多的寄存器,并不只是通用寄存器

论坛徽章:
0
发表于 2008-09-01 22:06 |显示全部楼层
寄存器都是有地址的, 只是有时寻址方试不一样, 如内部寄存器使用存取指令, 使用的助记符其实是宏定义的地址,

CPU内部通用寄存器一般由逻辑实现, 大片区域的寄存器常用SRAM来实现, 但要访问都要知道地址

论坛徽章:
0
发表于 2008-09-14 16:19 |显示全部楼层
大多数CPU,寄存器没有内存那样的地址。至少,不支持在指令里按地址去访问寄存器。
但是,个别CPU,通用寄存器组是和内存统一编址的。对这样的CPU,你可以用寄存器名访问它,也可以按地址访问它。譬如,Intel单片机MCS-51系列(俗称8051)。

论坛徽章:
0
发表于 2008-09-14 21:07 |显示全部楼层
cpu自己的寄存器一般都没有提供以地址访问的模式

soc的话,那些cpu core外面的外围芯片的寄存器倒是都是映射到了内存里

论坛徽章:
0
发表于 2008-09-22 15:42 |显示全部楼层
有些DSP的寄存器是有地址的,例如,TMS320C54x

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
发表于 2008-09-26 16:41 |显示全部楼层

回复 #26 lllaaa 的帖子

不只是cpu core的外围,可能cpu的cache设置等,都需要用统一的寻址。

论坛徽章:
0
发表于 2008-09-28 09:04 |显示全部楼层
cpu的寄存器是不需要地址的,是直接访问的,而寄存器还是访问内存具体地址的基础----从寻址这个角度上来讲。

论坛徽章:
0
发表于 2008-10-08 11:33 |显示全部楼层
原帖由 怪怪虎 于 2008-8-25 22:35 发表


我们可以知道寄存器映射的地址吗? 还有汇编是如何解析这些寄存器的?
  今天晚上看了下一个叫ATtiny13 控制器的说明文档,看到有些寄存器有地址,有些没有.弄的自己一头雾水.望赐教.

avr 的?学习过一段时间的atmega8, 里面的寄存器都是有地址的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP