七種尋址方式(寄存器相對(duì)尋址方式)
操作數(shù)在存儲(chǔ)器中,其有效地址是一個(gè)基址寄存器(BX、BP)或變址寄存器(SI、D
I)的內(nèi)容和指令中的8位/16位偏移量之和。其有效地址的計(jì)算公式如公式所示。
在不使用段超越前綴的情況下,有下列規(guī)定:
若有效地址用SI、DI和BX等之一來指定,則其缺省的段寄存器為DS;
若有效地址用BP來指定,則其缺省的段寄存器為SS。
指令中給出的8位/16位偏移量用補(bǔ)碼表示。在計(jì)算有效地址時(shí),如果偏移量是8位,則進(jìn)行符號(hào)擴(kuò)展成16位。當(dāng)所得的有效地址超過0FFFFH,則取其64K的模。
例:假設(shè)指令:MOV BX, [SI+100H],在執(zhí)行它時(shí),(DS)=1000H,(SI)=2345H,內(nèi)存單元12445H的內(nèi)容為2715H,問該指令執(zhí)行后,BX的值是什么?
解:根據(jù)寄存器相對(duì)尋址方式的規(guī)則,在執(zhí)行本例指令時(shí),源操作數(shù)的有效地址EA為:
EA=(SI)+100H=2345H+100H=2445H
該操作數(shù)的物理地址應(yīng)由DS和EA的值形成,即:
PA=(DS)*16+EA=1000H*16+2445H=12445H。
所以,該指令的執(zhí)行效果是:把從物理地址為12445H開始的一個(gè)字的值傳送給BX。
其執(zhí)行過程如圖所示。