‘壹’ 单片机中((R0))是什么意思
举个例子 如果R0=0x31 那么((R0))指0x31中存储的内容 就是R0存的地址中的内容。
由于单片机每执行一条指令都需要时间。上面的程序用文字描述:
DELAY: MOV R5,#20 ;延时子程序,延时0.2秒
这句是将十进制数20这个数传送给寄存器R5。
D1: MOV R6,#20
这句是:D1是标号,将20传给R6
D2: MOV R7,#248
与上相同
DJNZ R7,$
这句是每执行一次R7就减1如果不为0就跳转到这条指令开头,直到减为0。
DJNZ R6,D2
这句是每执行一次R6就减1如果不为0就跳转到D2这个标号,直到减为0。
DJNZ R5,D1
这句是每执行一次R1就减1如果不为0就跳转到D1这个标号,直到减为0。
‘贰’ 单片机ADD R0,AD对么,为什么
51 单片机没有 ADD R0,AD 可以是 ADD A, AD ( AD 为 direct )
ADD 指令格式有
ADD A,Rn 寄存器内容加到累加器
ADD A,direct 直接地址单元中的数据加到累加器
ADD A,@Ri 间接RAM中的数据加到累加器
ADD A,#data 立即数加到累加器
ADDC A,Rn 寄存器带进位加到累加器
ADDC A,direct 直接地址单元的内容带进位加到累加器
ADDC A,@Ri 间接RAM内容带进位加到累加器
ADDC A,#data 立即数带进位加到累加器
‘叁’ 单片机R0可以位寻址吗
51中R0当然不可以位寻址,可以位寻址的存储器是在20H~2FH,有的特殊功能寄存器也可以位寻址。R0不在这里!学51把存储结构弄懂很重要
‘肆’ 单片机 INC R0 得到什么结果
INC是自加一的命令,R0为寄存器名称,表示R0寄存器值自动加1.
‘伍’ 单片机中MOV A,@R0和MOV A,R0有什么区别
MOV A,@R0是将R0保存的地址中的值传送给累加器A
MOV A,R0是将R0的值传送给累加器A。
比如:
MOV 30H,#55H
MOV R0,#30H
MOV A,@R0 此时A=55H
MOV A,R0 此时A=30H
‘陆’ 单片机MOV R0,A.和MOV @R0,A的区别
一、作用不同
MOV A,R0是直接寻址指令(直接寻址方式的操作指令直接把地址作为操作数来运行,既可作为源操作数,也可作为目的操作数)因此是传递的R0中存储的数据。
MOV A,@R0是间接寻址指令(间接寻址时,寄存器的内容是操作数的地址。通过@Ri可以对片内数据存储器单元间接寻址),因此Ri中存储的是数据存储器的地址,Ri相当于指针,@Ri中存储的是数据存储器的地址的内容。
二、意思不同
MOV R0,A是把累加器中的数送给寄存器R0,MOV @R0,A是把累加器的内容给R0指向的内存单元。
三、用法不同
比如MOV A,#01H
MOV R0,A ;执行完这一句之后,R0=#01H
MOV A,#20H
MOV @R0,A ;把#20H送给R0指向的单元#01H,执行完之后01地址中存储的内容就变成#20H
后者是一个间接寻址的问题。
‘柒’ 单片机R0=20H与(R0)=20H有什么区别
R0=20H表示寄存器R0里面放20H,属于寄存器直接寻址
(R0)=20H表示以R0中的数据为地址,往这个地址中放20H,属于寄存器间接寻址
‘捌’ 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个工作寄存器可以选用。
‘玖’ 单片机中的R0-----R7有谁来决定
状态寄存器,R0-----R7共有四组。
在c中可以指定寄存器组,多看看书,汇编在使用寄存器的时候提前改变状态寄存器,就可以R0-----R7用了,另外,如果不想用R0-----R7这个标号,可以直接用R0-----R7的地址。
mov a 01h;
‘拾’ 单片机汇编的R0~R7的用法
都是寄存器,位于cpu内部alu单元,作用就是用来控制设置cpu引脚的功能和状态进而与外设交互;
r0\r1可用作间接寻址,r0-r7用来做寄存器寻址,寻址速度最快;