寻址方式
寻找操作数存放单元的地址的方式,共6种方式。
1、立即数寻址
所要找的操作数是一二进制数或十进制数,出现在指令中,用“#”作前缀
MOV A,#20H
2、寄存器寻址
操作数存放在工作寄存器R0 ~ R7中,或寄存器B中。
MOV A,R2
3、直接寻址
指令中直接给出操作数的地址。
MOV A,30H
MOV 30H,DPH
4、寄存器间接寻址
指令中寄存器的内容作为操作数存放的地址,指令中间接寻址寄存器前用
“@”表示前缀。
举“两个抽屉,两把钥匙”的例子。
MOV R0,#30H
MOV A,@R0
MOV A,#20H
MOV R1,#40H
MOV @R1,A
5、变址寻址
操作数地址 = 变地址 + 基地址
基地址寄存器 DPTR 或 PC
变址寄存器 @A
该寻址方式常用于访问程序存储器,查表。
MOV A,@A + DPTR
6、相对寻址
把指令中给定的地址偏移量与本指令所在单元地址(PC内容)相加得到真正有效的操作数所存放的地址。
举“李同学20岁,张同学比李同学大3岁”的例子。
JC 60H ;设(PC) = 2000H,
则当C = 1时,
转移的目的地址 = (PC)+ 2 + 60H