MOV A,Rn
工作
寄存器的数据送到A
n的取值为 0-7
MOV A,R0 .... MOV A,R7
MOV direct,Rn ;寄存器寻址
工作寄存器的数据送到直接地址
direct的取值为0H-0FFH ;例如 MOV 90H,R7 R7的值送到P1口
;direct的取值低于127为内存,高于127为特殊功能寄存器例如IO 中断 串口等、、
MOV Rn,direct ;寄存器寻址
直接地址的数据送到工作寄存器
;例如MOV R7,90H 读取P1口的数据并赋值给R7寄存器
;MOV R6,99H 读取串口数据并赋值到R6寄存器
Rn就代表8个工作寄存器
分别是R0到R7
direct代表单片机内的直接地址
一般低127字节是普通RAM,128字节是特殊功能寄存器
大部分
51单片机都有256字节RAM
无法使用直接地址访问高128字节的RAM
这时就需要通过(寄存器间接寻址)
MOV A,@Ri
MOV @Ri,A
这2条指令来实现了
@Ri的取值为 R0 R1 2个
例如要取200地址的RAM的值
首先
MOV R0,#200 ;R0 R1都可以
MOV A,@R0
这样就能取到200地址内的数据了
同理给200地址赋值只是反过来而已
MOV @R0,A