A. 单片机工作寄存器的R0~R7的地址分别是什么
51单片机的工作寄存器一共有32个,为ram中的00h--1fh单元,分为4组,分别是
0组:00h--07h单元、
1组:08h--0fh单元、
2组:10h--17h单元、
3组:18h--1fh单元,
每组的8个单元分别对应r0--r7。这四组中只有一组是当前工作寄存器,程序中使用的就是当前工作寄存器中的8个单元。当前工作寄存器是由程序状态字psw中的第三第四位决定的。在psw中,的psw4、psw3两位组合的00、01、10、11四个状态,分别指定工作寄存器的0组、1组、2组、3组,只需要用指令改变psw的这两位状态,就可以改变当前工作寄存器组。这样,实际上就是有32个工作寄存器可以选用。
B. 单片机编程中R6,R7,R0,A是什么
楼上误解了,没看清题意,楼上说的那几个是PIC单片机的,楼主说的是51单片机的
R6R7R0是51单片机中的工作寄存器组中的成员用于存放数据,这样的工作寄存器组共有四组,由程序状态字PSW中的RS0、RS1控制,
A是累加器,几乎是一个万能的数据寄存器,单片机一大部分的运算需要通过它来完成,
C. 51单片机的工作寄存器R0~R7位于内部RAM什么位置其位置是如何设定的
51单片机的工作寄存器一共有32个,为RAM中的00H--1FH单元,分为4组,分别是
0组:00H--07H单元、
1组:08H--0FH单元、
2组:10H--17H单元、
3组:18H--1FH单元,
每组的8个单元分别对应R0--R7。这四组中只有一组是当前工作寄存器,程序中使用的就是当前工作寄存器中的8个单元。当前工作寄存器是由程序状态字PSW中的第三第四位决定的。在PSW中,的PSW4、PSW3两位组合的00、01、10、11四个状态,分别指定工作寄存器的0组、1组、2组、3组,只需要用指令改变PSW的这两位状态,就可以改变当前工作寄存器组。这样,实际上就是有32个工作寄存器可以选用。
D. 51单片机R0-R7怎样压栈
首先你得知道R0~R7并不对应绝对地址,而PUSH只能对绝对地址压栈的。
对于自己编写的汇编程序,你得清楚当前PSW.RS位域选中的是哪一组RegBank,并将相应地址的寄存器压栈。例如如果选中了第2组寄存器(10b),那么应当压栈的是10h~17h单元。
如果是编译器写的伪代码,可以直接书写成 PUSH Rn 形式,编译器自动根据当前的RS位域来换算成对应的绝对地址。
网络嫌我字数不够
E. MCS-51单片机指令MOV A R7和MOV A @RO的源操作数的寻址方式
MOV
A
R7
是把寄存器R7的内容传送到累加器A中,MOV
A
@RO是间址RAM的数据传送到累加器A中。
F. MCS—51单片机如何实现工作寄存器R0-R7的选择
通过程序状态字中的RS0、RS1即可选中特定的寄存器组,实现寄存器组的切换。