打印
[AVR单片机]

请教关于存储器结构的问题

[复制链接]
1216|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 很给力!
5
qin552011373| | 2013-6-12 10:01 | 只看该作者
avr是哈佛结构  程序总线和数据总线是分开的  八位指的是数据

使用特权

评论回复
评分
参与人数 1威望 +5 收起 理由
huangxz + 5 很给力!
6
ayb_ice| | 2013-6-13 08:45 | 只看该作者
程序存储器做成16位

使用特权

评论回复
7
sgj245609615| | 2013-6-13 08:45 | 只看该作者
帮顶一下

使用特权

评论回复
8
qin552011373| | 2013-6-13 12:58 | 只看该作者
sgj245609615 发表于 2013-6-13 08:45
帮顶一下

使用特权

评论回复
9
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位宽的呀

使用特权

评论回复
10
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吗

使用特权

评论回复
11
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位宽的呀



使用特权

评论回复
12
ayb_ice| | 2013-6-13 14:51 | 只看该作者
这个可能是AVR32的

使用特权

评论回复
13
qin552011373| | 2013-6-13 21:17 | 只看该作者
90后的小奶粉 发表于 2013-6-13 14:14
原来是这样,程序存储器是16位的,所以一条16位的指令占用一个地址,所以每执行一条指令ilc+1,ok明白。
...

应该也要看厂商定义

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

59

帖子

0

粉丝