計算機組成原理:指令集系統
- 指令集體系結構(ISA)
- ISA定義
- ISA包含的內容
- 舉個栗子
- 指令的基本組成(操作碼+地址碼)
- 指令分類:地址碼的個數
- 定長操作碼
- 變長操作碼
- 變長操作碼的原則
- 變長操作碼的設計
- 指令尋址
- 尋址方式的目的
- 尋址方式分類
- 有效地址直接在指令中給出
- 有效地址間接給出
- 有效地址計算得到
- 重點解析:無符號數+有符號數
- 指令設計風格
- RISC
- CISC
- 不同指令風格下的相對尋址
- CISC風格
- RISC風格
- 標志位生成
- 有符號數和無符號數加減法電路的統一性
- 選擇題做法
- 無符號、有符號整數的大于0小于0判斷
- MIPS基本指令
- 過程調用
- 過程調用過程
指令集體系結構(ISA)
ISA定義
計算機硬件與軟件之間的接口。
可以把ISA視為封裝好的函數的函數名;
軟件通過直接使用函數名調用函數,但是并不關心這個函數是怎么具體實現的,不關心其硬件實現細節。
ISA(指令集體系結構)是硬件程序員給軟件程序員提供的指令說明書,更像硬件與軟件之間的一種約定。
ISA包含的內容
- 包含: 使用指令功能相關的全部信息
首先要告訴你有哪些指令,其次告訴你每條指令都什么含義,每條指令分為哪幾個部分,每個部分什么意思。 - 不包含: 指令中的功能如何具體用硬件來實現
事實上,只要涉及到具體什么硬件,應該就不會包含在ISA中。
舉個栗子
ISA包含:整數乘法相關的指令格式,比如可以實現2*3=c
但是不包含:ALU怎么實現的整數乘法,諸如靠加法+循環,或者是補碼一位乘法(Booth算法)
問題:ISA包不包含指令的長度?包含。
2025年真題:
16題選擇B,其他選項全是硬件相關的。
指令的基本組成(操作碼+地址碼)
要操作的數一般放在計算機中的哪個位置?
源操作數:計算機寄存器或內存中,或者直接給出(如立即數)
目的操作數:寄存器或內存
指令分類:地址碼的個數
-
零地址指令 :指令只給出了操作碼,沒有給出地址碼。例如:停機指令
-
單地址指令:自增指令,例如i++
該操作數既是源操作數,又是目的操作數。 -
二地址指令:一個操作碼+兩個地址碼,r1+r2->r1
在二地址指令中,第一個地址默認為目的地址。
-
三地址指令:r1+r2->r3
定長操作碼
指令種類一般是按照操作碼的位數而言,先不考慮地址碼的多少,只考慮有幾種指令操作,確定操作碼的位數。
地址碼可以定長也可以變長。
變長操作碼
在變長操作