迅维网

查看: 2944|回复: 5
打印 上一主题 下一主题

地址线编号为什么是add[3-31]而不是add[0-31]

[复制链接]
跳转到指定楼层
1#
发表于 2011-5-13 12:39:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 辽宁丹东 来自 辽宁丹东

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
add[0-2]干什么用了

2#
发表于 2011-5-14 19:32:04 | 只看该作者 来自: 江苏苏州 来自 江苏苏州
因为CPU是8位寻址

回复 支持 反对

使用道具 举报

3#
发表于 2011-5-14 23:46:09 | 只看该作者 来自: 辽宁丹东 来自 辽宁丹东
回复 大开幕 的帖子

就是说,cpu读到一个起始地址,那后七个就自动都算出来了。所谓的8位连读。

但这与29条线有什么关系?

回复 支持 反对

使用道具 举报

4#
发表于 2011-5-27 08:40:08 | 只看该作者 来自: 广东河源 来自 广东河源
我也想知道?

回复 支持 反对

使用道具 举报

5#
发表于 2011-5-27 16:24:01 | 只看该作者 来自: 福建厦门 来自 福建厦门
好像还有的是add[0~1]不接,不知道为什么!会不会和64,32位机寻址方式有关呢,一直没搞明白

回复 支持 反对

使用道具 举报

6#
发表于 2011-6-3 13:12:20 | 只看该作者 来自: 江苏南京 来自 江苏南京
本帖最后由 nicolas 于 2011-6-3 13:14 编辑

举个例子给大家:
期末考试了,现在发试卷,如果老师一个一个人的发,就要走到每个人的位置上,也就是一位一位的读写
有的老师比较懒,假如你们班有8列8排,老师一次发8张,只要递给每一列第一排的那个人就好了,然后依次往后发,收卷的时候正好相反.这样老师就只要找到每列第一个学生的位置就好了.
而对于32位的CPU也一样,它8位8位的读写,就是把你们班32排8列的人分成32组,8人一组,老师吧试卷只需要交给8人中的第一个就好了,CPU地址又是从高位到低位依次读写,当他读到倒数第3位时,他就不往下读了(懒),然后直接往后3位读写数据,那么后三位地址线你认为还有用吗?已经聋子的耳朵,摆不摆一样...
------------------------------------------------------------------------------------------------------------------
  字节0        字节1        字节2        字节3        字节4        字节5        字节6        字节7
   ↑              ↑              ↑              ↑               ↑             ↑              ↑              ↑
0x0000   0x0001     0x0002       0x0003      0x0004     0x0005     0x0006      0x0007
如上图,我们给出8个字节以及8个字节对应的地址,从0x0000~0x0007
ARM32位寻址时,一次对32bit=4字节进行操作。那么第一次访问的4个字节的地址=0x0000。那么下一次访问的地址是0x0001吗?
错啦,是0x0004,因为第一次寻址的时候已经对0x0000--0x0003地址进行了操作。
那么,我们来归纳一下每次访问的地址:
1st :0x0000
2nd:0x0004
3st :0x0008
4th :0x000C
如果换算成二进制,可以发现最低的两位总是00
同样的道理,如果MCU和Memory之间采用16bit接口,那么最低位总是0

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表