51单片机定义一个大数组存在idata与xdata中有什么区别?

51单片机定义一个大数组存在idata与xdata中有什么区别?,第1张

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, 建议少用碰陪。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12560465.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存