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单片机可以通过指针访问寄存器吗的主要内容,如果未能解决你的问题,请参考以下文章
keil2编51单片机程序c 指针赋值提示重复定义,怎么解决
51单片机在申请变量时总是有data,idata,xdata等限定词,可以不用吗?有啥好处吗?为啥别的单片机没有