常見的幾種定址方式

2021-10-06 05:31:20 字數 2115 閱讀 7646

引入:在儲存器中,運算元或指令字寫入或讀出的方式,有位址指定方式、相聯儲存方式和堆疊訪問方式。幾乎所有的計算機,在記憶體中都採用位址指定方式。當採用位址指定方式時,形成運算元或指令位址的方式稱為定址方式。定址方式分為兩類,即指令定址方式和資料定址方式,前者比較簡單,後者比較複雜。值得注意的是,在傳統方式設計的計算機中,記憶體中指令的定址與資料的定址是交替進行的。

順序定址方式

指令在記憶體中是按照順序一條一條排列的,因此程式執行時預設為順序執行。舉個例子:

- 組合語言mov eax,1 mov ebx,2 add eax,ebx

- c++`**

int a =1;

int b =2;

a = a + b;

程式預設從上到下依次執行。

程式順序執行的過程稱為指令的順序定址。為此需要設定乙個指令計數器pc來指示指令所在的位址。每次指令執行完成後,指令技術器會相應地加上當前指令字的長度。

跳躍定址方式

在某些情況,順序執行已經無法滿足演算法需要,或者為了簡化演算法,我們需要用到「選擇結構」、「迴圈結構」等使指令不是按照順序依次執行的指令組織方式。比如組合語言中的jmp、loop、jcxz等等,又比如高階語言中的"if"、「if-else」、「switch」、「while」、"for"等等。

在此種情況下,指令的位址不是由程式計數器給出,而是由當前指令給出。再完成跳躍後,指令技術器需要重新整理以指向新的當前指定的位址。

運算元定址

直接定址

指令格式的位址欄位中直接給出位址,因為直接給出的位址不需要經過變換所以稱為直接定址。

比如:mov ax,[2020] 源運算元的位址直接給出採用直接定址,目的運算元採用暫存器定址。

間接定址

間接定址是相對直接定址來說的,在間接定址的情況下,指令位址欄位中的形式位址不是運算元的真正位址,而是運算元位址的指示器,或者說此形式位址單元的內容才是運算元的有效位址。

暫存器定址

暫存器定址就是說運算元放在cpu的通用暫存器中,比如mov eax,ebx

mov [1234h],ax也是暫存器定址,源運算元在ax中,目的運算元在段暫存器中1234h所指的地方。

暫存器間接定址

暫存器間接定址與暫存器殉職的區別在於:指令格式中的暫存器內容不是運算元,而是運算元的位址,該位址指明的運算元在記憶體中。

通俗的來講:運算元的偏移位址存放在指定的暫存器中,暫存器作為指標指向記憶體單元,而運算元在儲存器中,這樣的暫存器稱為間址暫存器。

比如:mov ax,[bx] bx中存的是運算元的位址,[bx]指向源運算元所在的記憶體單元。

基址定址方式

在基址定址方式中將cpu中的基址暫存器的內容,加上變址暫存器的內容而形成運算元的有效位址。基址定址的優點是可以擴大定址能力,因為與形式位址相比,基址暫存器的位數可以設定得很長,從而可以在較大的儲存空間中定址。

變址定址方式

變址定址方式與基址定址方式計算有效位址的方法很相似,它把cpu中某個變址暫存器的內容與偏移量d相加來形成運算元有效位址。

但使用變址定址方式的目的不在於擴大定址空間,而在於實現程式塊的規律變化。為此,必須使變址暫存器的內容實現有規律的變化(如自增1、自減1、乘比例係數)而不改變指令本身,從而使有效位址按變址暫存器的內容實現有規律的變化。

暫存器相對定址

與暫存器間接定址方式類似,但不同的是,指令中還需要指定乙個位移量,對於16位系統來說,位移量是8位或16位,對於32系統來說,位移量是8位或32位的位移量,位移量是乙個帶符號的整數。

mov ax,10h[si] ;等值與mov ax,[si+10h]。

基址變址定址方式

運算元的偏移位址一部分在基址暫存器,一部分在變址暫存器,基址暫存器的內容加上變址暫存器的內容就是運算元的偏移位址。如:mov ax,[bx][si] 等價於mov ax,[bx+si]。

隱含定址

這種型別的指令,不是明顯地給出運算元的位址。而是在指令中隱含著運算元的位址。例如,單位址的指令格式,就不明顯地在位址欄位中指出第2運算元的位址,而是規定累加暫存器ac作為第2運算元位址。指令格式明顯指出的僅是第1運算元的位址d。因此,累加暫存器ac對單位址指令格式來說是隱含位址。如:daa 。

歡迎各位提出意見,如果有錯,請大家私聊我,我會立即修改以免影響讀者。

4 2 2 常見的資料定址方式

1.隱含定址 在指令中隱含著運算元的位址。如單位址的指令格式,就不是明顯地在位址欄位中指出第二運算元的位址,而是規定累加器acc作為第二運算元,指令格式明顯指出的僅是第一運算元的位址。因此,累加器acc對單位址指令格式來說是隱含位址。隱含定址的優點是有利於縮短指令字長 缺點是需增加硬體。2.立即 數...

定址 定址方式

定址方式就是處理器根據指令中給出的位址資訊來尋找實體地址的方式。在儲存器中,運算元或指令字寫入或讀出的方式,有位址指定方式 相聯儲存方式和堆疊訪問方式。幾乎所有的計算機,在記憶體中都採用位址指定方式。當採用位址指定方式時,形成運算元或指令位址的方式稱為定址方式。定址方式分為兩類,即指令定址方式和資料...

常見I O埠及其定址方式

3 命令埠 2.i o埠定址方式 功能 存放外設送往cpu的資料以及cpu輸出到外設去的資料。功能 指示外設的當前狀態。對於輸入埠 存放cpu向介面發出的各種命令或控制字,以便控制介面或裝置的動作 原理 把每個i o埠看成乙個儲存單元,與儲存單元統一編碼,這樣通過訪問儲存器的指令訪問i o埠。工作過...