1. 程式人生 > >第四章 指令系統

第四章 指令系統

地址 text 尋址方式 通用 減少 順序 多道程序設計 另一個 超流水線

總覽

  1. 指令格式
    1. 指令的基本格式
    2. 定長操作碼指令格式
    3. 不定長操作指令格式
  2. 指令的尋址方式
    1. 數據尋址和指令尋址
    2. 常見尋址方式
  3. CISC和RISC的基本概念

  1. 指令格式
    1. 指令的基本格式

操作碼

地址碼

  1. 零地址指令
    1. 沒有操作數的指令。如操作指令、停機指令、關中斷指令
    2. 堆棧計算機中的零地址運算類指令。堆棧計算機中參與運算的兩個操作數隱含的從棧頂和次棧彈出,送到運算器進行運算,運算的結構再隱含地壓入堆棧中。
  2. 一地址指令
    1. 只有目的操作數的單操作數指令,OP(A1) à A1
    2. 隱含約定目的地址的雙操作數指令,另一個操作數由累加器ACC提供,運算結果也在ACC中,(ACC) OP (A1) à ACC
  3. 二地址指令
    1. (A1) OP (A2) à A2

二地址指令類型

操作數的物理位置

速度

M-M

主存

最慢

R-R

寄存器

最快

R-M

寄存器-主存

介於兩者之間

  1. 三地址指令
    1. (A1) OP (A2) à A3
  2. 四地址指令
    1. (A1) OP (A2) à A3, A4為下一條指令地址
  3. 指令字長與機器字長
    1. 指令字長指一條指令所占用存儲空間的大小,一般為字節的整數倍;指令字長取決於操作碼的長度、操作地址的長度以及操作數地址的個數。
    2. 機器字長是CPU一次能處理的數據長度,通常等於內部寄存器的位數。
  1. 定長操作碼指令格式

    在指令字的最高位部分分配固定的若幹位表示操作碼。對於具有n位操作碼字段的指令系統,最多能夠表示2^n條指令。

  2. 不定長操作碼指令格式
    1. 不允許較短的操作碼是較長操作碼的前綴
    2. 各條指令的操作碼一定不可以重復
    3. 用高位的剩余空間擴充低位的表示範圍,以節省空間
  1. 指令的尋址方式
    1. 數據尋址和指令尋址
      1. 指令尋址:找到下一條將要執行指令的地址;一般來說有兩種方式:順序執行時,用(PC)+"1"來得到下一條指令的地址:跳轉執行時,通過轉移指令的尋址方式,計算出目標地址,送到PC中即可。目標轉移地址的形成方式主要有3種:立即尋址、相對尋址和簡介尋址。
      2. 數據尋址:找到當前正在執行指令的數據地址

操作碼

尋址特征

形式地址(A)

  1. 常見數據尋址方式

尋址方式

有效地址計算方式

用途和特點

立即尋址

通常用於給寄存器賦初值

直接尋址

EA=A

隱含尋址

縮短指令字長

一次間接尋址

EA=(A)

擴大尋址範圍,易於完成子程序返回

寄存器尋址

EA=Ri

指令字較短;指令執行速度較快

寄存器間接尋址

EA=(Ri)

擴大尋址範圍

基址尋址

EA=A+(BR)

擴大操作數尋址範圍;適用於多道程序設計,常用於為程序或數據分配存儲空間

變址尋址

EA=A+(IX)

主要用於處理數組問題

相對尋址

EA=A+(PC)

用於轉移指令和程序浮動

先間址再變址

EA=(A)+(IX)

先變址再間址

EA=(A+(IX))

  1. CISC和RISC的基本概念
    1. RISC的主要特點
      1. 指令長度固定,指令格式種類少,尋址方式種類少
      2. 只有取/存數指令訪問存儲器,其余指令的操作都在寄存器內完成
      3. CPU中有多個通用寄存器
      4. 采用流水線技術,大部分指令在一個時鐘周期內完成。采用超標量和超流水線技術,可使每條指令的平均執行時間小於一個時鐘周期。
      5. 控制器采用組合邏輯控制,不采用微程序控制
      6. 采用優化的編譯程序
    2. CISC的主要特點
      1. 指令系統復雜龐大,指令數目一般多大200-300條
      2. 指令長度不固定,指令格式種類多,尋址方式種類多
      3. 可以訪存的指令不收限制
      4. 由於80%的程序使用其20%的指令,因此CISC各指令的使用頻率差距太大。
      5. 各種指令執行時間相差很大,大多數指令需多個時鐘周期才能完成。
      6. 控制器大多數采用微程序控制。
      7. 難以用優化編譯生成高效的目標代碼程序。
    3. RISC和CISC的比較
      1. RISC比CISC更能提高計算機的運算速度,列入,由於RISC寄存器多,因此就可以減少訪存次數,其次,由於指令數和尋址方式少,因此指令譯碼較快。
      2. RISC比CISC更便於設計,可降低成本,提高可靠性。
      3. RISC能有效支持高級語言程序。

第四章 指令系統