指令的尋址方式


尋址方式是指尋找指令或操作數有效地址的方式,尋址方式分為指令尋址和數據尋址兩大類。

指令中的地址碼字段並不代表操作數的真實地址,這種地址成為形式地址A,由形式地址結合尋址方式,可以計算出操作數在存儲器中的真實地址,這種地址稱為有效地址EA

其中(A)代表地址為A的數值。

指令尋址和數據尋址:

  1.指令尋址:

    1)順序尋址:通過程序計數器PC加一(一個指令字長),自動形成下一條指令的地址。

    2)跳躍尋址:通過轉移類命令實現,下一條指令的地址不由PC自動給出,而是由當前指令給出指令地址的計算方式,跳躍的結果是當前的指令修改PC的值,所以本質上下一條指令仍通過PC給出

  2.數據尋址:

    數據尋址的方式較多,為區分各個方式,通常在指令字中設置一個字段,用指明屬於那種尋址方式。

    

常見的數據尋址方式:

  1.隱含尋址:

    這種類型的指令不指明操作數的地址,而在指令中隱含操作數的地址

    優點:可以縮短指令字長,缺點:需要增加存儲操作數或隱含地址的硬件。

    

  2.立即尋址:

    地址字段給出的不是操作數的地址,而是操作數本身,又稱立即數,采用補碼表示。

    優點:指令在執行階段不訪問主存,執行時間最短。缺點:A的位數限制了立即數的范圍

    

  3.直接尋址:

    指令字的形式地址A是操作數的真實地址EA,及EA=A

    優點:簡單,在執行階段只訪問一次主存。缺點:A的位數決定了操作數的尋址范圍,操作數的地址不易修改

    

  4.間接尋址:

    指令的地址字段給出的形式地址不是操作數的真正地址,而是操作數有效地址所在存儲單元的地址,即是操作數地址的地址,即EA=(A)

    優點:可以擴大尋址范圍。缺點:在指令的執行階段要訪問多次主存

     

  5.寄存器尋址:

    寄存器尋址是指指令字中直接給出操作數所在的寄存器編號,即EA=R,其操作數由R所指的寄存器中:

    優點:指令在執行階段不用訪問主存,由於寄存器數量少,對應的地址碼長度少,執行速度快。

    缺點:價格昂貴,寄存器的數量有限。

    

  6.寄存器間接尋址:

    寄存器R中給出的不是操作數,而是操作數所在主存單元的地址,即EA=(R)

    優點:與一般的間接尋址相比速度更快。缺點:指令的執行階段需要訪問主存。

    

  7.相對尋址:

    相對尋址是把PC的內容加上指令格式中的形式地址A而形成操作數的有效地址,即EA=(PC)+  A

    相對尋址的操作數地址不是固定的,它隨PC值的變化而變化,且指令地址之間總是相差一個固定值,因此便於程序的浮動。

    相對尋址被廣泛的用於轉移指令。

    

  8.基址尋址:

    基址尋址是CPU中的基址寄存器(BR)的內容加上指令格式中的形式地址A,而形成的有效地址,即EA=(BR)+  A

    基址寄存器是面向操作系統的,其內容有操作系統或管理員確定,主要用於解決程序員邏輯空間與存儲器物理空間的無關性

    

  9.變址尋址

    變址尋址是指有效地址EA,等於指令字中的形式地址A與變址寄存器IX的內容之和,即EA=(IX)+  A。IX為變址寄存器(專用)

    變址寄存器是面向用戶的,在程序的執行過程中,變址寄存器的內容可有用戶改變(作為偏移量),形式地址A不變,作為基地址。

    

 

變址尋址與基址尋址:

  基址尋址面向系統,主要用於為多道程序或數據分配存儲空間,因此基址寄存器的內容通常由操作系統或管理程序確定,在程序的執行過程中其值不變,而指令字中的A是可變的。

  變址尋址立足於用戶,主要用於處理數組問題,在變址尋址中,變址寄存器的內容由用戶確定,在程序執行過程中其值可以改變,而指令字中的A是不可變的。

九大數據尋址方式比較:  

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM