寻址就是寻找指令中操作数或操作数所在的地址。所谓寻址方式,就是如何找到存放操作数的地址,把操作数提取出来的方法。通常指源操作数的寻址方式。
MCS-51系列单片机寻址方式共有七种:寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。
1、寄存器寻址
寄存器寻址是指操作数存放在某一寄存器中,指令中给出寄存器名,就能得到操作数。寄存器可以使用寄存器组R0~R7中某一个或其它寄存器(A,B,DPTR等)。
例如:
寄存器寻址是指操作数存放在某一寄存器中,指令中给出寄存器名,就能得到操作数。寄存器可以使用寄存器组R0~R7中某一个或其它寄存器(A,B,DPTR等)。
例如:
MOV A,
R0 ;(R0 )→A
MOV P1,
A ;(A)→P1
ADD A,
R0 ;(A)+(R0) →A
2、直接寻址
在指令中直接给出操作数所在的存储单元的地址,称为直接寻址方式。在8051中,使用直接寻址方式可访问片内RAM的128个单元以及所有的特殊功能寄存器(SFR),对于特殊功能寄存器,既可以使用他们的地址,也可以使用他们的名字。
例如:
例如:
MOV A, 3AH ;(3AH) →A
又如:
MOV A, P1 ;(P1口) →A
MOV A, P1 ;(P1口) →A
也可写为:
MOV A, 90H ; 90H是P1口的地址。
MOV A, 90H ; 90H是P1口的地址。
3、立即数寻址
指令操作码后面紧跟的是一字节或两字节操作数,用 # 号