[AVR单片机] 请教关于存储器结构的问题

[复制链接]
2151|12
 楼主| 90后的小奶粉 发表于 2013-6-11 17:40 | 显示全部楼层 |阅读模式
avr单片机大多数指令都是16位的,而存储器是8位宽的,所以一条指令应该占用2个存储器地址啊
为什么这个题说一条16位的指令占用1个存储器地址呢?
Show  the   value  of   the   instruction   location   counter  (ILC)   after   every  line   of   the   program 
(“nested.asm”)  on  the   next   page.   You   may  assume  all   instructions   are  16‐bit  instructions  
(ie  they   each   occupy   one   program  memory  location).    Which  instructions   require   the  
second  pass  through of  the  program,  to  become completely  resolved?  
 楼主| 90后的小奶粉 发表于 2013-6-11 17:42 | 显示全部楼层

本帖子中包含更多资源

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

×
huangxz 发表于 2013-6-11 22:39 | 显示全部楼层
one   program  memory  location 应该指的就是一个程序存储器地址,也就是两个字节

评分

参与人数 1威望 +6 收起 理由
qin552011373 + 6 很给力!

查看全部评分

airwill 发表于 2013-6-12 09:11 | 显示全部楼层
程序存储器是 16 总线结构.

评分

参与人数 1威望 +6 收起 理由
qin552011373 + 6 很给力!

查看全部评分

qin552011373 发表于 2013-6-12 10:01 | 显示全部楼层
avr是哈佛结构  程序总线和数据总线是分开的  八位指的是数据

评分

参与人数 1威望 +5 收起 理由
huangxz + 5 很给力!

查看全部评分

ayb_ice 发表于 2013-6-13 08:45 | 显示全部楼层
程序存储器做成16位
sgj245609615 发表于 2013-6-13 08:45 | 显示全部楼层
帮顶一下
qin552011373 发表于 2013-6-13 12:58 | 显示全部楼层
sgj245609615 发表于 2013-6-13 08:45
帮顶一下

 楼主| 90后的小奶粉 发表于 2013-6-13 14:14 | 显示全部楼层
qin552011373 发表于 2013-6-12 10:01
avr是哈佛结构  程序总线和数据总线是分开的  八位指的是数据

原来是这样,程序存储器是16位的,所以一条16位的指令占用一个地址,所以每执行一条指令ilc+1,ok明白。
还有点小问题,pc和ilc一样吗?为什么这个题说 加入寄存器和存储器都是32位宽的,指令也是32位的,那么每执行一条指令pc+4呢?
按理说不是应该+1吗,因为存储器是32位宽的呀

本帖子中包含更多资源

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

×
 楼主| 90后的小奶粉 发表于 2013-6-13 14:16 | 显示全部楼层
airwill 发表于 2013-6-12 09:11
程序存储器是 16 总线结构.

原来是这样,程序存储器是16位的,所以一条16位的指令占用一个地址,所以每执行一条指令ilc+1,ok明白。
还有点小问题,pc和ilc一样吗?为什么这个题说 假如寄存器和存储器都是32位宽的,指令也是32位的,那么每执行一条指令pc+4呢?
按理说,一个存储器地址就代表32位,不是应该+1吗

本帖子中包含更多资源

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

×
 楼主| 90后的小奶粉 发表于 2013-6-13 14:17 | 显示全部楼层
ayb_ice 发表于 2013-6-13 08:45
程序存储器做成16位

原来是这样,程序存储器是16位的,所以一条16位的指令占用一个地址,所以每执行一条指令ilc+1,ok明白。
还有点小问题,pc和ilc一样吗?为什么这个题说 加入寄存器和存储器都是32位宽的,指令也是32位的,那么每执行一条指令pc+4呢?
按理说不是应该+1吗,因为存储器是32位宽的呀



本帖子中包含更多资源

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

×
ayb_ice 发表于 2013-6-13 14:51 | 显示全部楼层
这个可能是AVR32的
qin552011373 发表于 2013-6-13 21:17 | 显示全部楼层
90后的小奶粉 发表于 2013-6-13 14:14
原来是这样,程序存储器是16位的,所以一条16位的指令占用一个地址,所以每执行一条指令ilc+1,ok明白。
...

应该也要看厂商定义
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

59

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部