打印

求教高手

[复制链接]
1357|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yulunna|  楼主 | 2010-11-23 05:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟刚学习51单片机一段时间,前些天看了一个程序,汇编的,于是产生了一个困惑。单片机内部RAM256字节,用于数据存储的128个字节,ROM为4KB。我想知道因为我设定的ORG OOOOH从这开始的程序是存在RAM中还是ROM中,若存在RAM中一开始初始化的RAM中的某一单元,当程序运行到该单元时,是不是初始化的值将被取代(也就是说初始化的值如同虚设)。那如果不是的话,那对RAM是什么时候开始操作的呀,对ROM是什么什么时候操作的呀??在网上搜了一些RAM和ROM的资料,也看了本论坛各位高手对其他提问者的回答,可是还是很晕,希望高手指点迷经

相关帖子

沙发
kailai8| | 2010-11-23 05:53 | 只看该作者
精神可嘉,肯钻研就OK 了

使用特权

评论回复
板凳
stycx| | 2010-11-23 06:41 | 只看该作者
书没看仔细了吧,51教材的第一或第二章,有介绍51单片机的结构框图,里头说得比较清楚。
51是哈佛结构的,ROM 和RAM 是分开编址,即程序和数据分开保存。
片内数据存储器RAM(128B/256B),用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等,c51的RAM就只有256B空间。其中的128的空间还用作了特殊功能寄存器的定义。所以用于数据存储的只有128个字节

片内程序存储器ROM/EPROM(4KB/8KB),用以存放程序、一些原始数据和表格。

使用特权

评论回复
地板
ayb_ice| | 2010-11-23 08:22 | 只看该作者
ORG是针对程序空间的,ROM...

使用特权

评论回复
5
yulunna|  楼主 | 2010-11-23 16:16 | 只看该作者
谢谢,书我看的,而且感觉自己看的是比较仔细的。我知道RAM和ROM是分开编址的,但就是突然一下不清楚,写的程序是存放在哪个里面了,不过4楼指点有点清楚了,那具三楼所说,片内的RAM是不是不用程序写,他都会往里面存放数据呀,且存放的数据是随程序的运行可以随时改变的??如果这样的话,像MOV 50H,#11这样的语句,50H中的内容会不会被程序执行时的中间数据随机代替呀,如果这样的话,MOV 50H,#11就没有实际存储意义了。希望高手给予点名,小弟,不胜感激!!

使用特权

评论回复
6
new1988| | 2010-11-23 22:05 | 只看该作者
执行完MOV 50H,#11后只要不掉电或者没有被其他指令操作50H这个内存单元,那么50H这个内存单元里面的内容就一直是11,不会被什么随机代替。ROM是存储程序的地方,也叫只读存储器,在程序中,只可读不可写。所以在电脑把程序写入之后,在单片机运行中,ROM里面的内容就不可能被改变了。RAM叫随机存储器,在单片机上电的时候里面的内容是随机的。但是在有指令操作过以后,里面的内容就确定了,只要没有其他操作该内存,那么这个内存单元里面的数据在掉电之前就不会改变。
ROM和RAM虽然有共用的地址,但是他们是有单独的物理地址的,就像52的后128个字节的内存和特殊功能寄存器,他们也是共用地址,但是通过不同的寻址方式来访问。51单片机的ROM地址是16位的,而RAM地址是8位的

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
yulunna + 1
7
yulunna|  楼主 | 2010-11-25 02:37 | 只看该作者
谢谢哈

使用特权

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

本版积分规则

31

主题

411

帖子

6

粉丝