这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 基础知识每日一题——第四十题

共5条 1/1 1 跳转至

基础知识每日一题——第四十题

高工
2014-08-01 09:23:01     打赏
活动简介:

“每日一题”是EEPW参考西电XDLab社推出的旨向初学者普及基础知识的一项活动,每天在此帖内公布“每日一题”的题目。大家可以根据自己的理解对题目进行回答和相互讨论,我们鼓励大家积极发言。第二天会给出参考答案。每天一帖,所有的题目都将汇集至此,以期方便大家查找。

 

活动宗旨:

活动目的在于通过“每日一题”让大家每天进步一点点,增强大家的基础知识,提高大家对电子制作的兴趣。我们鼓励大家积极发言,如果不懂、是菜鸟,请积极发问;如果懂、是大神,请慷慨解囊。


        今日题目:51 单片机中 data,idata,xdata,pdata 的区别解答








基础知识每日一题

工程师
2014-08-01 09:29:17     打赏
2楼
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, 建议少用。

工程师
2014-08-01 09:30:23     打赏
3楼
楼上回答的很详细了

专家
2014-08-01 16:05:50     打赏
4楼
2楼给力

高工
2014-08-05 09:21:40     打赏
5楼

  从数据存储类型来说,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,建议少

  用。但也有他的优点,具体用法属于中级问题,这里不提。


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]