4.02指令的尋址方式

尋址方式及其分類

  1. 尋址方式:尋找指令或操作數有效地址的方式,即確定本條指令的數據地址及下一條待執行指令的地址的方法。

指令尋址

  1. 順序尋址:通過程序計數器(PC)加1(1個指令字長),自動形成下一條指令的地址。即(PC)+1→PC
  2. 跳躍尋址:通過轉移類指令實現,由本條指令給出下一指令的計算方式。
    a. 是否跳躍可能受到 狀態寄存器和操作數 的控制
    b. 跳躍到的地址分爲絕對地址(由標記符直接指出)、相對地址(相對於當前地址的偏移量)
    c. 跳躍的結果是當前指令修改PC的值,故下一條指令仍然通過PC指出

數據尋址

  1. 數據尋址,即在指令中表示操作數地址、並能通過這種表示得到或計算出操作數的地址
  2. 爲區分各種表示方法,在指令中增設尋址特徵字段,指明是屬於哪種尋址方式
    在這裏插入圖片描述
隱含尋址
  1. 不明顯的給出操作數地址,而在指令中隱含操作數的地址。如單地址指令僅明顯指出第一操作數的地址,隱含ACC作爲第二操作數地址。
  2. 特點
    a. 優點:利於縮短指令字長
    b. 缺點:需增加存儲操作數或隱含地址的硬件
立即尋址

在這裏插入圖片描述

  1. 指令的地址碼字段是 操作數本身,又稱爲立即數。一般採用補碼形式。
  2. #表示立即尋址的尋址特徵
  3. 特點
    a. 優點:指令執行階段不訪問主存,執行時間最短
    b. 缺點:地址碼字段位數限制了立即數的範圍
直接尋址

在這裏插入圖片描述

  1. 指令字中的形式地址是 操作數的地址,即EA=A
  2. 根據指令字的形式地址A,訪問對應的主存單元,取出操作數
  3. 特點
    a. 優點:簡單、指令在執行階段只需一次訪存,不需要專門計算操作數的地址
    b. 缺點:形式地址A位數限制了操作數的尋址範圍,操作數地址不易修改
間接尋址

在這裏插入圖片描述

  1. 指令中的形式地址是 操作數地址的地址,即EA=(A)
  2. 間接尋址可以是一次或多次間接尋址
  3. 通過指令字的形式地址A,訪問對應的主存單元,取出操作數的有效地址EA,然後根據EA再次訪存,取出對應的操作數
  4. 特點
    a. 優點:可擴大尋址範圍
    b. 缺點:需要多次訪存(一次間址需要兩次訪存)
寄存器尋址

[外鏈圖片轉存失敗,源站可能有防盜在這裏插入!鏈機制,建描述]議將圖片上https://傳(imblog.csdnimg.cn/2029010Y68P94348760.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjUxMTY3,size_16,color_FFFFFF,t_70)https://img-blog.c方法sdnimg.cn/20200601094348760.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjUxMTY3,size_16,color_FFFFFF,t_70)]

  1. 在指令字中直接給出操作數所在的寄存器編號,即EA=Ri
  2. 根據指令字的形式地址A,找到對應的寄存器,取出操作數
  3. 特點
    a. 優點:因寄存器數目少,對應的地址碼長度較短;且寄存器直接放於CPU中,訪問速度快
    b. 缺點:寄存器價格昂貴,計算機中寄存器數目有限
寄存器間接尋址

在這裏插入圖片描述

  1. 寄存器Ri中給出的不是一個操作數,而是操作數所在主存單元的地址,即EA=(Ri)
  2. 根據指令字的形式地址A,找到對應的寄存器,取出操作數的有效地址EA;然後再根據EA,訪問對應的存儲單元,取出操作數
  3. 特點:比一般間接尋址速度更快,但仍需訪問主存(操作數在主存中)
偏移尋址
  1. 基址尋址:EA=(BR)+A
  2. 變址尋址:EA=(IX)+A
  3. 相對尋址:EA=(PC)+A
三種偏移尋址的特點
  1. 注三種偏移尋址在於寄存器的不同,尋址方式大致相同。
  2. 將CPU中BR、IX、PC的內容加上指令字的形式地址A,形成操作數的有效地址EA,再根據EA到主存中取操作數。
  3. 三種偏移尋址公共的優點:可擴大尋址範圍(BR、IX、PC的位數大於形式地址A的位數);
基址尋址

在這裏插入圖片描述

  1. 基址寄存器可採用專用寄存器或通用寄存器
  2. 基址寄存器是 面向操作系統 的,其內容由操作系統或管理程序確定。
  3. 在程序執行過程中,基址寄存器內容不變(作爲基地址),形式地址可變(作爲偏移量)
  4. 採用通用寄存器作爲BR時,可由用戶指定哪個寄存器作爲BR,但(BR)仍由操作系統決定
  5. 特點
    a. 優點:用戶不必考慮自己的程序位於主存中的哪個空間區域,有利於多道程序的設計,並可用於編制浮動程序
    b. 缺點:偏移量(形式地址A)的位數較短
變址尋址

在這裏插入圖片描述

  1. 變址寄存器可採用專用寄存器IX或通用寄存器
  2. 變址寄存器是面向用戶的
  3. 在執行過程中,變址寄存器內容不可變(作爲偏移量地址),形式地址A內容可變(作爲基地址)
  4. 特點:在數組處理過程中,可設定A爲數組的首地址,不斷改變(IX),便可很容易得到數組中任意數據的地址,特別適合編制循環程序。偏移量(變址寄存器)的位數足以表示整個存儲空間
相對尋址

在這裏插入圖片描述

  1. 形式地址A表示相對於當前指令的位移量,補碼錶示,可正可負。
  2. 優點:操作數地址不固定,而是隨着PC的值變化,且與指令地址之間總是存在一個固定的差值,便於程序的浮動。相對尋址廣泛用於轉移指令
堆棧尋址(瞭解、之後擴充)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章