六、相对寻址
2025年09月21日
六、相对寻址
相对寻址只出现在转移指令中。相对寻址是将程序计数器PC的当前值与指令中给出的偏移量rel相加,其和作为转移指令的目的地址。
在使用相对寻址时要注意以下两点:
(1)当前PC值是指相对转移指令的存储地址加上该指令的字节数。例如:
JC 75 H
如图3-5所示,假设CY=1,该指令是双字节指令,它的机器码为4075H,其存储地址PC=1000 H,取指后PC自动加2,当前PC值变为1000H+2 H=1002 H。则单片机下一条要执行的指令地址(即转移的目的地址)=(1000H+02H)+75H=1077H。执行完指令后,PC=1077 H,即转移到1077 H存储单元去执行程序。
图3-5 相对寻址示意图
(2)偏移量rel是有符号的单字节数,以补码表示,其值的范围是-128~+127,负数表示从当前地址向低地址方向转移,正数表示从当前地址向高地址方向转移。所以,相对转移指令满足条件后,转移的目的地址为
目的地址=当前PC值+rel=指令存储地址+指令字节数+rel