单片机学习小组
直播中

萧蔼晨

9年用户 1073经验值
私信 关注

在51系列中data,idata,xdata,pdata的区别是什么?

51系列中data,idata,xdata,pdata的区别:

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访问。

pdata:外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,@Rx读写。这个比较特殊,而且C51好象有对此BUG,建议少用。但也有他的优点,具体用法属于中级问题,这里不提。

回帖(1)

李鸿

2024-1-11 14:24:44
总的来说,data和idata指内部RAM,xdata和pdata指外部扩展RAM,访问方式和速度不同。data和idata是通过直接寻址方式访问,而xdata和pdata是通过DPTR指针访问或者使用movx指令间接访问。pdata只能访问外部扩展RAM的低256个字节,而xdata则需要使用DPTR高8位来访问外部扩展RAM的高位。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分