運算元的定址方式(非常重要)

2021-07-13 12:59:41 字數 2438 閱讀 9876

形成運算元的有效位址的方法叫運算元的定址方式。

指令中的運算元欄位的位址碼由形式位址和定址方式特徵位等組合形成。一般的指令中所給出的位址碼並不是運算元的有效位址。

形式位址也叫偏移量,是指令字結構中給定的位址量。定址過程就是把運算元的形式位址變換成有效位址的過程。

形式位址

定址方式

有效位址

定址方式:

1、隱含定址方式

不明顯給出運算元的位址,在指令中隱含著運算元的位址。如單位址指令,不明顯指出第二個運算元的位址,而規定ac累加器做位第二運算元位址。

2、立即定址方式

(1)位址字段給出的是可以立即使用的運算元實際值,稱立即定址方式。

(2)優缺點:

提供運算元最快,但精度較低,可採用變字長格式解決。

例如:在ibm-pc指令系統中

movax

,05ffh

3、直接定址方式

(1) 含義:位址字段直接指明運算元在儲存器內的位置的定址方法。即形式位址等於有效位址,

(2) 缺點:直接定址方式中指令字長限制了一條指令所能夠訪問的最大主存空間,可以使用可變字長指令格式來解決此侷限性。利用擴大了的運算元位址碼就能全部訪問主儲存器的所有的儲存單元。

例如:在ibm-pc指令系統中

movax

,[3000h]

4、間接定址方式

(1)含義:指令字中位址碼欄位d給出的不是運算元的真正位址,而是運算元位址的指示器,或者說d單元的內容才是運算元的有效位址。

(2)優缺點:

a、優點:實現簡便,對程式設計帶來較大的靈活性

b、缺點:

(a)多次訪問記憶體,增加了指令的執行時間;

(b)占用主儲存器單元多。

對程式編制能帶來較大的靈活性表現在:

(i)間接定址方式的指令可以訪問大的儲存空間,擴大了指令的定址能力。

(ii)

當運算元位址改變時,只需修改間接位址指示器的單元內容,而不必修改指令,原指令的功能照樣實現。這給程式編制帶來很大方便。

5、暫存器定址方式和暫存器間接定址方式

當運算元不放在記憶體中而放在cpu的通用暫存器中時,採用暫存器定址方式。

指令中給出的運算元位址不是記憶體的位址單元號,而是通用暫存器的編號。

暫存器間接定址方式與暫存器定址方式區別:

指令格式中的暫存器內容不是運算元,而是運算元的位址,該位址指明的運算元在記憶體中。

6、相對定址方式

把程式計數器pc作為基本位址暫存器,指令字中的形式位址碼d作為位移量,則有效位址ea=(pc)+d。相對定址主要用於轉移指令。

相對定址就是相對於當前的指令位址的意思。

⑴位移量可正、可負,通常用補碼表示。

⑵位移量是運算元位置與本指令之間的相對距離。

⑶無須用指令的絕對位址變成,所程式設計序可以放在記憶體的任何地方。

7、基址定址方式

將cpu中的基址暫存器的內容加上指令格式中的形式位址形成有效位址。ea=d+x。其中,x是基址r,d是偏移量。

基址定址方式主要用以解決程式在儲存器中的定位和擴大定址空間等問題。

8、變址定址方式

把cpu中的某個變值暫存器的內容與偏移量d相加形成有效位址。

使用的目的在於實現程式塊的規律變化。不改變指令本身就可以實現變址暫存器中內容的有規律變化。如自動加1,減1等等。

9、復合定址方式:

(a) 變址間址定址方式

其含義是先將變址暫存器的內容x和形式位址a相加得到a+x,然後再作間接定址,得到運算元的有效位址。故運算元的有效位址為:

ea=(a+x)

(b)間址變址定址方式

含義是先將形式位址取間接變換(a)=n,然後把n和變址暫存器的內容x相加,得到運算元的有效位址。故運算元的有效位址為:

ea=n+x=(a)+x

(c)intel 8086/8088

中基址變址定址方式

基址暫存器可以採用bx或bp,變址暫存器可以用si或di,有效位址是通過將基址暫存器中的值、變址暫存器中的值和位移量三這相加而求得的。

d)分頁定址方式

若計算機中欲採用直接定址方式,但由於其訪問的記憶體位址空間受指令中位址碼字段長度的制約,若記憶體空間較大,則可採用分頁定址方式來解決。將指令中運算元位址碼可以訪問到的記憶體位址空間稱為一頁,則整個記憶體空間可以按頁的大小分為多個頁面。

例如設記憶體儲器容量為64k個單元,而指令中位址碼長度為9位,則每一頁有512個單元,可將記憶體空間劃分為64k/512=128頁。為訪問128頁,需要7位**來表示頁號。若預先將頁號送入頁號暫存器,把頁號暫存器的內容與指令暫存器中形式位址兩者拼接起來,就能獲得乙個可以訪問整個記憶體空間的有效位址。

(e)段定址方式

20根位址線220=1m,將1m以64k為單位

分成若干段,由乙個基位址加上某些寄

存器提供的16位偏移量來形成實際的20

位實體地址。

運算元的定址方式(非常重要)

形成運算元的有效位址的方法叫運算元的定址方式。指令中的運算元欄位的位址碼由形式位址和定址方式特徵位等組合形成。一般的指令中所給出的位址碼並不是運算元的有效位址。形式位址也叫偏移量,是指令字結構中給定的位址量。定址過程就是把運算元的形式位址變換成有效位址的過程。形式位址 定址方式 有效位址 定址方式 ...

運算元的定址方式(非常重要)

形成運算元的有效位址的方法叫運算元的定址方式。指令中的運算元欄位的位址碼由形式位址和定址方式特徵位等組合形成。一般的指令中所給出的位址碼並不是運算元的有效位址。形式位址也叫偏移量,是指令字結構中給定的位址量。定址過程就是把運算元的形式位址變換成有效位址的過程。形式位址 定址方式 有效位址 定址方式 ...

非常重要的git

什麼是git linux出現之後,很快成為了最火的伺服器系統,因為其是開源的,所有有非常多的人對其進行開發,以至於出現了各種不同的版本。人們把自己寫的 發給linus linu創始人 由其手動的拼接這些 手動拼接了11年之後,linus用了兩周的時間寫出了git。git是linus為linux寫的分...