【計算機組成原理】尋址方式

一、尋址方式是指確定本條指令的數據地址以及下一條將要執行的指令地址的方法,與硬件結構緊密相關,而且直接影響指令格式和指令功能。分爲指令尋址和數據尋址兩大類。

二、指令尋址分爲順序尋址和跳躍尋址兩種。順序尋址可通過程序計數器PC加1,自動形成下一條指令的地址;跳躍尋址則通過轉移類指令實現。

數據尋址種類較多,在指令字中必須設一字段來指明屬於哪一種尋址方式。指令的地址碼字段通常都不代表操作數的真實地址,把它稱爲真實地址,記作A。操作數的真實地址成爲有效地址,記作EA,它是由尋址方式和形式地址共同來確定的。由此可得指令的格式應如下所示。

操作碼

尋址特徵

形式地址A

1.立即尋址

立即尋址的特點是操作數本身設在指令字內,即形式地址A不是操作數的地址,而是操作數本身,又稱之爲立即數。數據是採用補碼形式存放的。優點在於只要取出指令,便可立即獲得操作數,在執行階段不必再訪問存儲器。缺點是A的位數限制了這類指令所能表述的立即數的範圍。

圖1 立即尋址示意圖

2.直接尋址

直接尋址的特點是,指令中的形式地址A就是操作數的真實地址EA,即EA=A。優點是尋找操作數比較簡單,不需要專門計算操作數的地址,在指令執行階段只訪問一次。缺點在於A的位數限制了操作數的尋址範圍,而且必須修改A的值,才能修改操作數的地址。

圖2 直接尋址示意圖

3.隱含尋址

隱含尋址是指指令字中不明顯地給出操作數的地址,其操作數的地址隱含在操作碼或某個寄存器中。例如,一地址格式的加法指令只給出一個操作數的地址,另一個操作數隱含在累加器ACC中,這樣累加器ACC成了另一個數的地址。由於隱含尋址在指令字中少了一個地址,因此,這種尋址方式的指令有利於縮短指令字長。

圖3 隱含尋址示意圖

4.間接尋址

倘若指令字中的形式地址不直接指出操作數的地址,而是指出操作數有效地址所在的存儲單元地址,也就是說,有效地址是由形式地址間接提供的,即爲間接尋址,即EA=(A)。優點是與直接尋址相比,擴大了操作數的尋址範圍,並且便於編程,缺點在於指令的執行階段需要訪存多次,致使指令執行時間延長。

圖4 間接尋址示意圖

5.寄存器尋址

在寄存器尋址的指令字中,地址碼字段直接指出了寄存器的編號,即EA=R。其操作數在由R所指的寄存器中。由於操作數不在主存中,故寄存器尋址在指令執行階段無須訪存,減少了執行時間。由於地址字段只需指明寄存器編號(計算機中寄存器數有限),故指令字較短,節省了存儲空間,因此寄存器尋址在計算機中得到廣泛應用。

圖5 寄存器尋址示意圖

6.寄存器間接尋址

寄存器中的內容不是操作數,而是操作數所在主存單元的地址號,即有效地址EA=(R)。與寄存器尋址相比,指令的執行階段還需訪問主存。與間接尋址相比,因有效地址不是存放在存儲單元中,而是存放在寄存器中,故稱其爲寄存器間接尋址,比間接尋址少訪存一次。

圖6 寄存器間接尋址示意圖

7.基址尋址

基址尋址需設有基址寄存器BR,其操作數的有效地址EA等於指令字中的形式地址與基址寄存器中的內容(稱爲基地址)相加,即EA=A+(BR)。因爲基址寄存器的位數可以大於形式地址A的位數,所以基址尋址可以擴大操作數的尋址範圍。

圖7 基址尋址示意圖

8.變址尋址

變址尋址與基址尋址極爲相似。其有效地址EA等於指令字中的形式地址A與變址寄存器IX的內容相加之和,即EA=A+(IX)。

圖8 變址尋址示意圖

變址尋址與基址尋址的有效地址形成過程極爲相似,但是由於二者的應用場合不同,因此從本質上講他們還是有很大區別的。基址尋址主要用於爲程序或數據分配存儲空間,故基址寄存器的內容通常由操作系統或管理程序確定,在程序的執行過程中其值是不可變的,而指令字中的A是可變的。在變址尋址中,變址寄存器的內容是由用戶設定的,在程序執行過程中其值可變,而指令字中的A是不可變的。變址尋址主要用於處理數組問題。

9.相對尋址

相對尋址的有效地址是將程序計數器PC的內容(即當前指令的地址)與指令字中的形式地址A相加而成,即EA=(PC)+A。常被用於轉移類指令

圖9 相對尋址示意圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章