首页 > 编程知识 正文

单片机idata区是指,idata与xdata

时间:2023-05-06 08:48:55 阅读:124593 作者:4960

今天硬件工程师问了我一个问题

单片机c语言中经常使用idata xdata pdata data修饰变量,这是什么意思?

我告诉他这是数据存储管理的意思,但我忘了那个区的具体定义。

不好意思,可以说自己写单片机的c语言程序。

然后我在百度上到了:

data:固定是指上一个0x00-0x7f的128个RAM。 acc能够直接读写是最快的,生成的代码也最小。 添加了0到127范围内的数据存储地址或128.255范围内的特殊功能寄存器(SFR )地址。 两者访问的方式不同。 实际上,由于PSW的复位设定PSW.3=RS0和PSW.4=RS1都为0,所以通用工作寄存器区域为第0个区域,data的00--07H部分与REG栏的R0--R7对应。 以后只表示低128字节的内部RAM。

所谓bit:是指0x20-0x2f的可寻址区域为内部数据存储空间中的20H.2FH区域的1位地址,该地址在DATA的20H以后表现为字节,可以相互参照。 另外,添加了8051可寻址的SFR,刚才试了一下,只有00H--7FH工作正常。 也就是说,数据发生变化时颜色会变红,从80H开始--FFH不再是可寻址区域。 可寻址的特殊寄存器。 如果涉及11个可寻址的话,当然会做出反应。

idata:固定是指前一个0x00-0xff的256个RAM。 其中,前面的128和data的128完全相同,只是访问方法不同。 idata以类似于c的指针方式访问。 程序集语句为moxACC,@Rx . (不重要的补充:在c中,idATa进行指针式访问很有效。 )

xdATa:外部扩展RAM一般是指外部0x0000-0xffff空间,通过DPTR访问。

当地址出现在A0-A7上时,pdATa:外部扩展RAM的低位256字节读写,并通过movxACC、@Rx读写。 这很特殊,而且C51上好像有这个漏洞,所以建议不要使用。 但是,也有他的优点,具体的使用方法是中级的问题,所以在这里不提及。 pdata对64K的ram进行页面寻址,每页256字节。 仅使用低位8位的地址线,即pdata读写ram时,P2地址线不变。

代码: 0000 h .0ffffh之间的代码地址。

使用

ORG 5000H

在TAB: DB 22H、3BH、43H、66H、5H、6DH和88H之后,

代码从5000H变成数据库的各位

复位后,程序计数器PC的内容为0000H,内部RAM的各单元的值不确定。

各功能寄存器的复位值如下。

堆栈指针SP的复位值为07H,累加器ACC、寄存器b的复位值为00H,数据指针DPTR的复位值为0000H,p0、p1、p2、p3这4个端口的复位值为0FFH。 其他SFR,例如PSW、TCON、TMOD、TL0、TH0、TL1、TH1的复位值也是00H。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。