pushpop指令的操作数必须是字操作数_指令格式
按指令字長度分類
指令字長:整個指令的長度,與機器字長沒有固定關(guān)系。通常把指令字長 = 機器字長的指令稱為單字長指令,同理還有半字長指令和雙字長指令。
在一個指令系統(tǒng)(指令集:ARM,x86)中,若所有指令的長度都相等,則稱為定長指令字結(jié)構(gòu)。定長指令的執(zhí)行速度快,控制簡單。同樣與之對應的有變長指令字結(jié)構(gòu)。
由于主存一般是按字節(jié)編址的,所以指令字長多為字節(jié)的整數(shù)倍。
按操作碼長度分類
定長操作碼:指令中系統(tǒng)中所有指令的操作碼長度都相同。
可變長操作碼:指令系統(tǒng)中各指令的操作碼長度可變。
擴展操作碼的設計(考點)
定長指令字結(jié)構(gòu)+可變長操作碼,不同地址數(shù)的指令使用不同長度的操作碼。
在設計擴展操作碼指令格式時,必須注意以下兩點:
不允許短碼是長碼的前綴,即短操作碼不能與長操作碼的前面部分的代碼相同。——比如哈夫曼編碼
各指令的操作碼一定不能重復。
通常情況下,對使用頻率較高的指令,分配較短的操作碼,對使用頻率較低的指令,分配較長的操作碼,從而盡可能減少指令譯碼和分析的時間。
按指令操作類型分類
一、數(shù)據(jù)傳送類
LOAD——把存儲器中的數(shù)據(jù)放到寄存器
STORE——把寄存器中的數(shù)據(jù)放到存儲器
二、運算類
1、算術(shù)邏輯操作
算術(shù):加、減、乘、除、加1、減1、求補、浮點運算、十進制運算
邏輯:與、或、非、異或、位操作、位測試、位清除、位求反
2、移位操作
算術(shù)移位、邏輯移位、循環(huán)移位(帶進位和不帶進位)
三、程序控制類——轉(zhuǎn)移操作
無條件轉(zhuǎn)移:JMP
條件轉(zhuǎn)移
調(diào)用CALL和返回RETURN
陷阱(Trap)與陷阱指令
四、輸入輸出類:進行CPU和I/O設備之間的數(shù)據(jù)傳輸
CPU寄存器與IO端口之間的數(shù)據(jù)傳送(端口即IO接口中的寄存器)
按操作數(shù)地址碼數(shù)目分類
1、零地址指令
不需要操作數(shù),如空操作、停機、關(guān)中斷等指令
堆棧計算機,兩個操作數(shù)隱含存放在棧頂和次棧頂,計算結(jié)果壓會棧頂。——如數(shù)據(jù)結(jié)構(gòu)中“后綴表達式”的運算。
2、一地址指令
只需要單操作數(shù),加1、減1、取反、求補等
指令含義:OP(A1)→A1
需要兩個操作數(shù),但其中一個操作數(shù)隱含在某個寄存器(如隱含在ACC)
指令含義:(ACC)OP(A1)→ACC —— 將ACC中的內(nèi)容和A1中的內(nèi)容做OP操作得到的結(jié)果放回ACC。
完成一條指令需要2次訪存:取指令和訪問A1,放回ACC不用訪存,ACC是寄存器。
3、二地址指令
常用與需要兩個操作數(shù)的算術(shù)運算、邏輯運算相關(guān)指令。
指令含義:(A1)OP(A2)→A1——將地址為A1和A2的內(nèi)容執(zhí)行OP操作,結(jié)果放回A1
訪存4次:取指令→讀A1→讀A2→寫A1
4、三地址指令
常用與需要兩個操作數(shù)的算術(shù)運算、邏輯運算相關(guān)指令。
指令含義:(A1)OP(A2)→A3——將地址為A1和A2的內(nèi)容執(zhí)行OP操作,結(jié)果放回A3
訪存4次:取指令→讀A1→讀A2→寫A3
5、四地址指令
指令含義:(A1)OP(A2)→A3,A4 =下一條將要執(zhí)行指令的地址。
正常情況:取指令之后PC++,指向下一條指令。
四地址指令:執(zhí)行指令后,將PC的值修改為A4所指地址。(注意是A4的地址不是A4的內(nèi)容)
訪存4次:取指令→讀A1→讀A2→寫A3
地址尋址范圍:
若指令總長度不變,則地址碼數(shù)量越多,地址碼位數(shù)越少,直接尋址能力越差。
總結(jié)
以上是生活随笔為你收集整理的pushpop指令的操作数必须是字操作数_指令格式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一斤虾多少钱啊?
- 下一篇: 3dmax2020安装失败原因及解决方法