返回目錄《計算機組成原理筆記目錄(2019 王道考研)》
4.1 指令格式
本章總覽
1.指令格式
如何用二進位制**表示指令
2.指令定址方式
給出要操作的物件的位址
3.cisc和risc
兩種設計方向
1.指令(又稱機器指令)
是提示計算機執行某種操作的命令,是計算機執行的最小功能單位
一台計算機的所有指令的集合構成該機的指令系統,也稱為指令集。
注:一台計算機只能執行自己指令系統中的指令,不能執行其他系統的指令。
2.指令格式
1.一條指令就是機器語言的乙個語句,它是一組有意義的二進位制**。
2.一條指令通常要包括操作碼欄位和位址碼字段兩個部分
操作碼+位址碼
操作碼:使用者要幹什麼?(停機中斷,求反求補...)
3.四位址指令、三位址指令、二位址指令、一位址指令、零位址指令
定長指令字結構:指令長度固定不變
變長指令字結構:指令長度不等
定長操作碼:n位->2^n條指令
擴充套件操作碼:操作碼長度可變
3.擴充套件操作碼
1.基本思路
要留出乙個狀態,來表示現在進入下一層的操作碼的編碼
2.擴充套件操作碼舉例
3.還有其他擴充套件碼的設計方法,在設計擴充套件操作碼指令格式時,必須注意以下兩點:
1.不允許短碼是長碼的字首,即短操作碼不能與長操作碼的前面部分的**相同
2.各指令的操作碼一定不能重複
通常情況下,對使用頻率較高的指令,分配較短的操作碼;
對使用頻率較低的指令,分配較長的指令碼,從而盡可能減少指令解碼和分析的時間。
4.其他擴充套件碼設計舉例(上層可以預留多個狀態)
4.操作碼總結
定長操作碼使用在指令長度比較長的機器上
擴充套件操作碼使用在指令長度比較短的機器上
5.操作型別
1.資料傳送
load 作用:把儲存器中的資料放到暫存器中
store 作用:把暫存器中的資料放到儲存器中
進行主存與cpu之間的資料傳送
2.算數邏輯操作
算數:加減乘除等
邏輯:與或非等
3.移位操作
算數移位、邏輯移位、迴圈移位(帶進製和不帶進製)
4.轉移操作
無條件轉移 jmp
條件轉移 jz:結果為0;jo:結果溢位;jc:結果進製
呼叫和返回 call和return
陷阱(trap)與陷阱指令
改變程式執行的順序
5.輸入輸出操作
cpu暫存器與io埠之間的資料傳送(埠即io介面中的暫存器)
進行cpu與i/o裝置之間的資料傳送
8086指令格式
8086的指令使用的是1 6byte s 的變長指令。由3個部分組成 舉幾個例子,下圖是1byte 6bytes不同長度指令的劃分 先來翻譯一下上面的各個部分 d destination 目的運算元,w word 字,mod 模式 方式,reg register 暫存器,r m register m...
x86指令格式
當計算機處理器晶元執行時,它讀取儲存在記憶體中的指令碼。每個指令碼集合可能包含乙個或多個位元組的資訊,這些資訊指示處理器完成特定的任務。每條指令碼都是從記憶體中讀取的,指令碼所需的資料也是儲存在記憶體中並從記憶體中讀取。包含指令碼的記憶體位元組和包含處理器使用的資料的位元組沒有區別。為了區分資料和指...
intel X86指令格式分析
先說一下暫存器編號 0 1 2 3 4 5 6 7 eax ecx edx ebx esp ebp esi edi intel指令格式如下圖所示 mod為00 01和10時,r m 000 eax 時,有效位址分別是 eax disp8 eax 和disp32 eax mode為11時,運算元是暫存...