51单片机编程 用C语言能访问R0~R7的寄存器吗

如题所述

高级语言是脱离硬件的,这本来是高级语言的长处。
楼主提出这个要求,是想要看高级语言的难堪的。
幸亏KEIL软件的研发者,想到了这一点,知道将来会有人来添乱。
在KEIL中,可以为变量指定存放地址,如ROM、RAM、片内RAM等等。
这样,楼主不仅可以访问四个R0~R7的寄存器组,还可以访问“位寻址区”......。
只是这样一来,楼主的代码,将会长一些,运行时,随机可用的空间少一些,系统的运行速度,会降低一些......。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-22
好像没有专门访问R0~R7的,KEIL C编译C语言的时候是随机分配变量地址的,不过中断里好像可以固定访问R0~R7,比如void Timer1(void) interrupt 3 using 1
using 1 就表示中断用的变量都在R1里,不过一般不建议这么用本回答被提问者采纳
第2个回答  2011-10-22
能,可以用纯汇编的东西,在kei l c 语言环境中,
第3个回答  2011-10-21
头文件里没有对通用寄存器的定义,本身51单片机里R0-R7是片内RAM一部分,R0-R7是配合汇编寻址用的,在C编译时会进行处理的。
第4个回答  2019-07-22
指针,楼上说用汇编的也行。C就要灵活使用指针