51单片机在申请变量时总是有data,idata,xdata等限定词,可以不用吗?有啥好处吗?为啥别的单片机没有

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51单片机在申请变量时总是有data,idata,xdata等限定词,可以不用吗?有啥好处吗?为啥别的单片机没有相关的知识,希望对你有一定的参考价值。

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, 建议少用。
参考技术A 使用这些限定词,编程人,就可以自主定义,各个变量的存储空间。

如果对单片机的硬件不熟,也可以不用写这些,而由编译软件自动安排变量的位置。
现在,编译软件的智能性已经不错了,基本上,不用再进行人为的限定。
参考技术B 个鼓风机功夫才

以上是关于51单片机在申请变量时总是有data,idata,xdata等限定词,可以不用吗?有啥好处吗?为啥别的单片机没有的主要内容,如果未能解决你的问题,请参考以下文章

单片机成长之路(51基础篇) - 017 C51中data,idata,xdata,pdata的区别(转)

转:单片机C语言中的data,idata,xdata,pdata,code

关于keil单片机编程中的data,idata,xdata,pdata,code数据类型

51单片机的idata,xdata,pdata,data的详解

51单片机可以通过指针访问寄存器吗

STC单片机Keil C代码中内嵌汇编代码段示例