一、機器指令
每一條 機器語言 的指令叫 機器指令
全部機器指令的 集合 叫機器的 指令系統

指令由 操作碼 和 位址碼 組成,指令字長 與操作碼長度、操作數位址長度、操作數位址個數有關。
- 操作碼:指明該指令要完成的操作、對什麼類型的資料進行操作(有的指令系統還在此處說明了操作數的尋址方式),其長度可以固定,也可變化,操作碼位數随位址數減少而增加。
- 位址碼:指出指令操作數位址、結果位址、下一條指令位址。
注:
- 操作嗎并非一定如上圖所示,集中在一個區域,可以分散在指令不同字段中。
- 使用頻率高的指令用短操作碼,使用頻率低的用長操作碼,可縮短編譯時間
(1)四位址指令
格式:
在執行過程中,訪存 4 次,指令直接尋址範圍太小
由于程式計數器 PC 有計數功能,可自動形成下一條指令位址,故可得三位址指令。
(2)三位址指令
格式:
在執行過程中,訪存 4 次。
若将中間計算結果放入 CPU 寄存器中(而不放入主存),則可省去結果位址,得到二位址指令。
(3)二位址指令
格式:
在執行過程中,訪存 3 次。
若将一位操作數直接放于運算器 ACC 中,則得到一位址指令。
(4)一位址指令
格式:
在執行過程中,訪存 2 次。
(5)零位址指令
無位址碼,如 進棧出棧指令。
二、操作數類型和操作類型
1.操作數類型
- 位址:無符号整數
- 數字:定點數、浮點數、十進制數
- 字元:ASCII
- 邏輯資料
2.資料存放方式
- 任意位置開始:浪費存儲空間,訪存時間短
- 每次從一個字起始位置開始
- 按“邊界對準”存儲:從位址整數倍位置開始通路。如下圖:
3.操作類型
- 資料傳送
- 算數邏輯運算
- 移位:分算術移位、邏輯移位、循環移位
- 轉移
- 輸入輸出(對于 I/O 單獨編址的計算機,才有輸入輸出指令)
- 其他:如等待指令、停機指令等
轉移:
分無條件轉移、條件轉移、調用與傳回、陷阱與陷阱指令
- 調用與傳回指令通常配合使用
- 陷阱指令通常不提供給使用者,作為隐指令,在有意外故障時由 CPU 自動産生并執行。
三、尋址方式
尋址方式指确定本條指令的資料位址,以及下一條指令的位址的方法。
分為:
- 指令尋址
- 資料尋址
1.指令尋址
- 順序尋址:PC 自動加 1 ,形成下一條指令位址(注意,此處 “1”的含義,若指令字長 32 位元組,存儲單元 8 位元組,則此時 PC+4)
- 跳躍尋址:由轉移指令指出
2.資料尋址
(1)立即尋址
特點:形式位址 A 不是位址,而是操作數本身,又稱為立即數。
執行階段不必訪存。
(2)直接尋址
特點:形式位址 A 就是有效位址
執行階段隻訪存 1 次,但是必須通過修改 A 的值才可修改操作數位址。
(3)隐含尋址
特點:指令字中補明顯給出操作數位址,位址隐含于操作碼或某個寄存器。
其中,尋址特征部分為隐含尋址,A 為直接尋址。
有利于縮短指令字長。
(4)間接尋址
分為一次間址(如上圖)、多次間址(A 所指的還不是最終位址)。
擴大了操作數尋址範圍,利于編址程式,缺點為訪存時間長。
(5)寄存器(直接)尋址
A 為寄存器編号,操作數在 A 所指寄存器中。
執行時無需訪存,執行時間短。
(6)寄存器間接尋址
A 為寄存器編号, A 所指寄存器中存有效位址。
執行階段仍需訪存,便于編寫循環程式。
(7)基址尋址
采用專門寄存器做基址寄存器,有效位址 EA = 基址寄存器 BR 中位址 + A
(8)變址尋址
有效位址 EA = 變址寄存器 IX 中位址 + A
與基址尋址不同:
- 基址寄存器的内容由作業系統、管理程式确定,A 可變。
- 變址寄存器内容由使用者确定,A 不可變。,主要用于處理數組問題。
(9)相對尋址
其有效位址為程式計數器 PC 中的位址,與指令字中的形式位址 A 相加而得。
(10)堆棧尋址
堆棧尋址指令字中沒有形式代碼字段,屬于零位址指令。
四、RISC 技術
- RISC 精簡指令系統計算機
- CISC 複雜指令系統計算機
本文中圖檔除第一張外均為劉宏偉教授在中國大學MOOC上的課件截圖