運算元在儲存器中,其有效位址是乙個基址暫存器(bx、bp)和乙個變址暫存器(si、di)的內容之和。其有效位址的計算公式如公式所示。
在不使用段超越字首的情況下,規定:如果有效位址中含有bp,則預設的段暫存器為ss;否則,預設的段暫存器為ds。
例:假設指令:mov bx, [bx+si],在執行時,(ds)=1000h,(bx)=2100h,(si)=0011h,記憶體單元12111h的內容為1234h。問該指令執行後,bx的值是什麼?
解:根據基址加變址定址方式的規則,在執行本例指令時,源運算元的有效位址ea為:
ea=(bx)+(si)=2100h+0011h=2111h
該運算元的實體地址應由ds和ea的值形成,即:
pa=(ds)*16+ea=1000h*16+2111h=12111h
所以,該指令的執行效果是:把從實體地址為12111h開始的乙個字的值傳送給bx。
其執行過程如圖所示。
七種定址方式 相對基址加變址定址方式
運算元在儲存器中,其有效位址是乙個基址暫存器 bx bp 的值 乙個變址暫存器 si di 的值和指令中的8位 16位偏移量之和。其有效位址的計算公式如公式所示。在不使用段超越字首的情況下,規定 如果有效位址中含有bp,則其預設的段暫存器為ss 否則,其預設的段暫存器為ds。指令中給出的8位 16位...
相對基址加變址定址方式
運算元在儲存器中,其有效位址是乙個基址暫存器 bx bp 的值 乙個變址暫存器 si di 的值和指令中的8位 16位偏移量之和。其有效位址的計算公式如公式所示。在不使用段超越字首的情況下,規定 如果有效位址中含有bp,則其預設的段暫存器為ss 否則,其預設的段暫存器為ds。指令中給出的8位 16位...
七種定址方式 直接定址方式
指令所要的運算元存放在記憶體中,在指令中直接給出該運算元的有效位址,這種定址方式為直接定址方式。在通常情況下,運算元存放在資料段中,所以,其實體地址將由資料段暫存器ds和指令中給出的有效位址直接形成,但如果使用段超越字首,那麼,運算元可存放在其它段。例 假設有指令 mov bx,1234h 在執行時...