51单片机定义一个大数组存在idata与xdata区别为:空间不同、访问不同、获取不同。
一、空间不同
1、idata:idata占用51单片机内部RAM的固定0x00-0xff空间。
2、xdata:仿改xdata占用51单片机外部RAM扩展的0x0000-0xffff空间。
二、访问不同
1、idata:idata用类似C中的指针方式进行访问。
2、xdata:xdata用DPTR进行访问。
三、获取不同
1、idata:51单片机编译成功后,局丛在idata区中,可以直接获取到定义的数组。
2、xdata:51单片机编译成功后,在xdata区桐大樱中,不可以直接获取到定义的数组。
data: 固定指前面灶闭0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。bit :是指0x20-0x2f的可位寻址区
idata:固定指前面0x00-0xff的256个RAM,其中前128和dATa的128完全相同,只是因为访问的方式不同。
idata是用类似C中的指针方式访问的。
汇编中的语句为:隐吵裂mox ACC,@Rx.(不重要的补充:c中idATa做指针式的访问效果很好)
xdATa: 外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。
pdATa: 外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,@Rx读写。这个比较特殊,而且C51好象有对此BUG, 建议少用碰陪。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)