单片机C语言读写XDATA,关于keil单片机编程中的data,idata,xdata,pdata,code数据类型

从数据存储类型来讲,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特色而设定的pdata类型,使用不一样的存储器,将使程序执行效率不一样,在编写C51程序时,最好指定变量的存储类型,这样将有利于提升程序执行效率(此问题将在后面专门讲述)。与ANSI-C稍有不一样,它只分SAMLL、COMPACT、LARGE模式,各类不一样的模式对应不一样的实际硬件系统,也将有不一样的编译结果。数组

在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,建议少用。但也有他的优势,具体用法属于中级问题,这里不提。

单片机C语言unsigned char code table[] code 是什么做用?

code的做用是告诉单片机,我定义的数据要放在ROM(程序存储区

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值