從兩者定義來看,感覺沒有多大區別。只是暫存器中存放基準位址還是偏移位址。為什麼不看成一種呢?我們來詳細解釋。
基址定址中的基址暫存器內容通常由作業系統或管理程式確定,程式執行過程中值不可變。其偏移量可變。主要是面向系統的。
基址定址典型應用是程式重定位。目標程式由作業系統調入記憶體,使用者並不知道放在了記憶體**。使用者程式設計使用的位址實際是邏輯位址,在將來執行時才轉換成實際的實體地址。基址定址方式下,程式重定位時由作業系統給使用者分配乙個基準位址(在基準暫存器中),在程式執行時就可以對映成實體地址了。
而且基準定址能擴大定址範圍(基址暫存器位數大於形式位址位數)。舉個例子:主存16m,基址暫存器24位(不是暫存器位址24位!)。指令中位址段使用16位,2位用來定址暫存器(假設由4個暫存器,則需兩位位址),剩餘14位給出位移量,可訪問16kb連續儲存空間。每次修改基址暫存器的值,那麼基址加變址每次可以尋找連續16kb的空間。顯著提高定址效能
變址定址是面向使用者的,變址暫存器的內容可以由使用者進行改變,形式位址不變(直接寫在了指令中)。常用於陣列。可設定形式位址位陣列首址,每次通過改變變址暫存器的值實現陣列的操作。
相對基址加變址定址方式
運算元在儲存器中,其有效位址是乙個基址暫存器 bx bp 的值 乙個變址暫存器 si di 的值和指令中的8位 16位偏移量之和。其有效位址的計算公式如公式所示。在不使用段超越字首的情況下,規定 如果有效位址中含有bp,則其預設的段暫存器為ss 否則,其預設的段暫存器為ds。指令中給出的8位 16位...
七種定址方式 基址加變址定址方式
運算元在儲存器中,其有效位址是乙個基址暫存器 bx bp 和乙個變址暫存器 si di 的內容之和。其有效位址的計算公式如公式所示。在不使用段超越字首的情況下,規定 如果有效位址中含有bp,則預設的段暫存器為ss 否則,預設的段暫存器為ds。例 假設指令 mov bx,bx si 在執行時,ds 1...
七種定址方式 相對基址加變址定址方式
運算元在儲存器中,其有效位址是乙個基址暫存器 bx bp 的值 乙個變址暫存器 si di 的值和指令中的8位 16位偏移量之和。其有效位址的計算公式如公式所示。在不使用段超越字首的情況下,規定 如果有效位址中含有bp,則其預設的段暫存器為ss 否則,其預設的段暫存器為ds。指令中給出的8位 16位...