与绝对寻址相比,相对寻址具有很好的“浮动性”,因此是编程人员普遍使用的一种寻址方式。
使用时,要注意3点:
1,CPU进行地址计算时,PC取值是执行本指令后的地址值。以上面的例子说明:
指令本身的首地址是2000H,执行完后变为2002H(既下一条指令的首地址)。
如果使用三字节的相对转移指令,则PC=PC+3。
2,偏移量的计算:
rel=目标地址-源地址-2 (2字节指令)
或: rel=目标地址-源地址-3 (3字节指令)
结果用补码的形式书写。
为了减少计算偏移量的计算,汇编程序允许使用“符号地址”的方式代替偏移量。如:
SJMP loop1
汇编程序在翻译时,自动计算并将结果替换符号地址。
3, 如果转移地址的范围超过相对寻址的范围(如:-127~+128)时,就要采用别的方式法,否则在编译时,提示出错。