計算機組成原理-指令系統(概括)
指令
操作碼 地址碼
零地址指令:不需要運算元,如空操作、停機、關中斷等指令。
一地址指令:加一減一、取反、求補
二地址指令:兩個運算元的邏輯算數運算
三地址指令:多了個需要存的位置
四地址指令:相比於3,結束後PC修改為下一條指令地址
指令字長:一條指令的總長度(可能會變)/會影響取指令所需的時間
機器字長:CPU進行一次整數運算所能處理的二進位制資料的位數(通常和ALU直接相關)
儲存字長:一個儲存單元中的二進位制程式碼位數(通常和MDR位數相同)
按操作碼長度分類:定長操作碼 可變長操作碼
按操作型別:資料傳送 算術邏輯運算 移位操作 轉移操作 輸入輸出操作
擴充套件操作碼:
定長指令字結構+可變長操作碼
指令定址:
跳躍定址:JMP無條件轉移等直接改變PC的值
資料定址:確定本條指令的地址碼指明的真實地址
直接定址:直接給運算元地址
間接定址:指令的地址欄位給出的形式地址不是運算元的真正地址,而是運算元有效地址
所在的儲存單元的地址,也就是運算元地址的地址,即EA=(A)。
(範圍更大)
暫存器定址:在指令字中直接給出運算元所在的暫存器編號,即EA=R,其運算元在由R,所
指的暫存器內。
優點:
指令在執行階段不訪問主存,只訪問暫存器,指令字短且執行速度快,支援向量/矩陣運算。
缺點:
暫存器價格昂貴,計算機中暫存器個數有限。
暫存器間接定址:暫存器R,中給出的不是一個運算元,而是運算元所在主存單元的地址,
即EA=(R)。
隱含定址
立即定址:形式地址A就是運算元本身,又稱為立即數,一般採用補碼形式。
#表示立即定址特徵。(最快)
偏移定址
基址定址:將CPU中基址暫存器(BR)的內容加上指令格式中的形式地址A,
而形成運算元的有效地址,即EA=(BR)+A。
(從任意起始地址+偏移量)
變址定址:有效地址EA等於指令字中的形式地址A與變址暫存器X的內容相加之和,即EA= (IX)+A,其中IX可為變址暫存器(專用),也可用通用暫存器作為變址暫存器。
(寫迴圈)
相對定址:把程式計數器PC的內容加上指令格式中的形式地址A而形成運算元的有效地址,
即EA=(PC)+A,其中A是相對於PC所指地址的位移量,可正可負,補碼錶示。
堆疊定址:運算元存放在堆疊中,隱含使用堆疊指標(SP)作為運算元地址。
CISC和RISC