相對尋址以PC當(dāng)前值(PC當(dāng)前值是執(zhí)行完指令后的值,也就是當(dāng)前指令的PC值+指令所占的字節(jié)數(shù))作為基地址,與指令中給定的偏移量rel相加,所得的結(jié)果作為程序的轉(zhuǎn)移地址,指令中的偏移量rel是一個用補(bǔ)碼表示的8位帶符號數(shù)。相對尋址用于相對轉(zhuǎn)移指令中,如:
JZ 30H; 當(dāng)A=0時,PC←PC+2+rel
當(dāng)A≠0時,PC←PC+2 //程序順序執(zhí)行
該指令以累加器Acc的值是否為0為轉(zhuǎn)移條件,如果為Acc的值0則轉(zhuǎn)移,如果Acc的值不為0則程序順序執(zhí)行。程序的執(zhí)行過程見相對尋址(二)。
在MCS-51的指令系統(tǒng)中,相對轉(zhuǎn)移指令多為2字節(jié)指令,因此目的地址一般是PC+2+rel;如果是3字節(jié)指令,目的地址是PC+3+rel。偏移量rel是一個8位帶符號數(shù),因此程序轉(zhuǎn)移的范圍在PC當(dāng)前值的+127—-128之間。