寻找 *** 作数存放单元的地址的方式,共6种方式。
1.立即数寻址
所要找的 *** 作数是一二进制数或十进制数,出现在指令中,用“#”作前缀
MOVA,#20H
2.寄存器寻址
*** 作数存放在工作寄存器R0 ~ R7中,或寄存器B中。
MOVA,R2
3.直接寻址
指令中直接给出 *** 作数的地址。
MOVA,30H
MOV30H,DPH
4.寄存器间接寻址
指令中寄存器的内容作为 *** 作数存放的地址,指令中间接寻址寄存器前用“@”表示前缀。
MOVR0,#30H
MOVA,@R0
MOVA,#20H
MOVR1,#40H
MOV@R1,A
5.变址寻址
*** 作数地址=变地址+基地址
基地址寄存器DPTR或PC
变址寄存器@A
该寻址方式常用于访问程序存储器,查表。
MOVA,@A + DPTR
6.相对寻址
把指令中给定的地址偏移量与本指令所在单元地址(PC内容)相加得到真正有效的 *** 作数所存放的地址。
JC60H;设(PC)= 2000H,
则当C = 1时,
转移的目的地址=PC)+ 2 + 60
来源;21ic
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)