原创 谈一下51的RAM

2008-1-11 15:39 4517 3 4 分类: MCU/ 嵌入式

之前有朋友老是出现RAM地址溢出,但他自己不知道是什么问题,因为他用的51是512的RAM,但他才不到400字节的,总是想不明白为什么不够用,这里说一下,其实是他的定义类型不对,他把所有变量定义成了DATA,才会导致这样。为什么呢?看看下面就知道了


data:
固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。

idata:
固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式 访问的。汇编中的语句为:mox ACC,@Rx.(不重要的补充:c中idata做指针式的访问效果很好)

xdata:
外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。


不知道大家现在明白了没?超过256字节的就属于外部RAM了。有人说但我也没用外部RAM,手册里写的也是单片机本身就是512RAM,为什么是外部?其实超过256字节的RAM都是用技术集成在单片机里的,不是真正的内部RAM,必须要定义为XDATA才可以用。

文章评论1条评论)

登录后参与讨论

用户71098 2008-1-29 09:18

很多人都经常地址溢出,相信看了这应该知道是什么问题了,顶上去给大家看看
相关推荐阅读
用户71098 2014-11-18 09:41
智能家居不应被手机化绑架
现在很多产品都围绕着手机开发,手机集成的功能也越来越多,甚至可以实现移动办公。以智能家居来说,几乎所有的产品都围绕着手机终端开发,小到一只灯泡、大到电视、冰箱、洗衣机…只要摆在家里的电器,都可以通...
用户71098 2014-11-18 09:40
智能家居不应被手机化绑架
现在很多产品都围绕着手机开发,手机集成的功能也越来越多,甚至可以实现移动办公。以智能家居来说,几乎所有的产品都围绕着手机终端开发,小到一只灯泡、大到电视、冰箱、洗衣机…只要摆在家里的电器,都可以通...
用户71098 2014-11-01 10:03
浅谈智能家居
最早期,小商家们打着智能家居的幌子,推出了遥控开关、定时开关,以低廉的价格去打入市场。这时,所谓的智能家居,就是狭义上的传统开关智能化,与真正意义的智能家居相差甚远。但凭着商家搞得噱头,当时这类开...
用户71098 2013-09-09 16:09
GSM继电器的PCB回来了
前几天发出打样的PCB回来了,先上几个图               ...
用户71098 2013-09-09 16:08
GSM继电器板基本焊接好了
PCB到手几天了,今天上午把元件基本焊接好,除了一些端子没有,回头把没有的原件买回来喊上就可以了,指示灯位置也跟外壳吻合,太好了,简单测试了下,GSM模块跟电脑连接测试,打电话和发信息都没问题了,...
用户71098 2013-08-29 15:13
想用SIM900A做个小东西
        早几年前,折腾过TC35I,后来因为别的事情就搁置了,现在想再搞起来,但TC35I的连接座手焊有一定难度,所以就不用它了,网上搜索一番,发现SIM900A还挺好,邮票口的封装,手焊...
我要评论
1
3
关闭 站长推荐上一条 /2 下一条