当前位置:首页 » 编程语言 » c语言r0
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言r0

发布时间: 2022-08-21 17:13:56

‘壹’ 51单片机汇编中的寄存器R0、R1、R2如果用c语言写的话怎么表示

如果必须访问这几个寄存器的话可以使用c语言里嵌入汇编,或者访问各寄存器对应的映射地址。

‘贰’ 51单片机碰着一题要把结果保存到R0~R7 用C语言有办法吗

目前还没有办法,C语言的好处正是不用编程人员分配内存。不知为何会有这种反向需求。

‘叁’ arm汇编语言中的寄存器R0~R15和我们C语言操作的寄存器有什么关系

汇编语言中的寄存器或者高级语言中的变量都是一种抽象而已,由翻译器(汇编器 / 编译器)和指令解释器(CPU在读到机器指令之后要解释这个机器指令是什么意思,指令解释器是内嵌在CPU里面的)来决定这究竟对应于硬件的什么东西

对于程序员而言,不管是“寄存器”还是“变量”都可以理解成可以存储数据或者读取数据的“储物柜”而已

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

好像没有专门访问R0~R7的,KEIL
C编译C语言的时候是随机分配变量地址的,不过中断里好像可以固定访问R0~R7,比如void
Timer1(void)
interrupt
3
using
1
using
1
就表示中断用的变量都在R1里,不过一般不建议这么用

‘伍’ 汇编语言调用c语言

如果keil5的话,在汇编内调用c语言的变量,可以
IMPORT (变量名)
LDR r0, =(变量名) //获得该变量地址到r0
LDR r0,[r0] //将r0其值作为地址,获取其地址指向的值
这样c中变量的值就传递到r0了

‘陆’ 51单片机C语言工作寄存器问题

头文件里定义了PSW
当PSW中的RS1、RS0发生变化时对应的工作区发生相应的变化,对应关系为:
00:工作区0,R0~R7对应地址00H~07H
01:工作区1,R0~R7对应地址08H~0FH
10:工作区2,R0~R7对应地址10H~17H
11:工作区3,R0~R7对应地址18H~1FH
RS1/RS0是靠软件来设置的,你可以根据不同情况自由设置,一般中断时用得较多,避免影响正常流程下的工作寄存器值。

‘柒’ C51单片机中@Ri和R0 R1 是不是同等

不一样的。
直接写R0、R1是寄存器寻址,读写的就是R0或R1的内容。而写成@R0、@R1则是间接寻址,真正访问的是RAM,只是被访问单元的地址在R0或者R1中,此时R0、R1相当于C语言中的指针变量。