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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51单片机可以通过指针访问寄存器吗相关的知识,希望对你有一定的参考价值。

可以
可以带。 在51单片机的嵌入式C语言中,指针同样是被支持的。所以在单片机上一样可以使用指针操作,具体使用方法,与标准C语言并没有不同。 不过需要注意的是,使用指针代表着间接寻址,相对变量的直接寻址,速度要稍慢
参考技术A data:固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。

idata:固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式 访问的。汇编中的语句为:mox ACC,@Rx。

xdata:外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。

pdata:外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,@Rx读写。这个比较特殊,对于C51来说好象有BUG, 建议少用。

code:访问程序存储器(默认仅限于标准51能够寻址的64kB空间内),生成的代码主要通过 MOVC@A+DPTR实现。

far:far是Keil 编译器为了支持新出现的8051家族增强型MCU,这些增强型MCU可能拥有大于64KB的存储器。使用far可访问扩展的RAM,使用**const far可访问扩展的ROM**。NXP 51MX架构51单片机提供通过通用指针访问多达8MB的code和xdata存储空间。Dallas 390架构的51单片机通过24位的DPTR寄存器结合传统MOVX 、MOVC指令来访问扩展的RAM和ROM。

以上是关于51单片机可以通过指针访问寄存器吗的主要内容,如果未能解决你的问题,请参考以下文章

什么是堆栈,51单片机堆栈指针SP的使用

keil2编51单片机程序c 指针赋值提示重复定义,怎么解决

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

STC12C5A60S2单片机复位 p0,p1口数值是多少? pc指针数值?堆栈是多少? 寄存器,

stm32跟普通的51单片机在程序编写方面有啥区别?

51的单片机学习——定时器