MIPS ISA---經典RISC指令集
阿新 • • 發佈:2019-02-18
符號記錄
名稱 | 含義 |
---|---|
GPR | General Purpose Register 通用暫存器(32num-64bit) |
FPR | Floating-point Purpose Register 浮點暫存器(32num-64bit) |
SP | single-precision 單精度 |
DP | double-precision 雙精度 |
GT | greater than 大於 |
LT | less than 小於 |
LE | less or equal 小於等於 |
GE | greater or equal 大於等於 |
EQ | equal 等於 |
NE | not equal 不等於 |
指令部分
指令型別 | 指令含義 |
---|---|
資料傳送 |
GPR與主存,FPR或特殊暫存器GPR |
LB LBU SB | 載入位元組,載入無符號位元組,儲存位元組 |
LH LHU SH | 載入半字,載入無符號半字,儲存半字 |
LW LWU SW | 載入字,載入無符號字,儲存字 |
LD SD | 載入雙字,儲存雙字 |
L.S | 載入單精度浮點數 |
L.D | 載入雙精度浮點數 |
S.S | 儲存單精度浮點數 |
S.D | 儲存雙精度浮點數 |
MFCO MTCO | 從GPR移動到特殊暫存器,從特殊暫存器移動到GPR |
MOV.S | FPR間單精度浮點數傳送 |
MOV.D | FPR間雙精度浮點數傳送 |
MFC1 MTC1 | GPR->FPR FPR->GPR |
算數邏輯運算 |
GPR數字邏輯運算 |
DADD DADDI DADDU DADDIU | 非立即數或立即數形式的有符號或無符號數相加 |
DSUB DSUBU | 有符號數減 無符號數減 |
DMUL DMULU DDIV DDIVU MADD | 有符號乘,無符號乘,有符號除,無符號除,乘加 |
AND ANDI | 與,立即數與 |
OR ORI XOR XORI | 或,立即數或,異或,立即數異或 |
LUI | 載入立即數上半部分 載入32-47bit,進行符號擴充套件 |
DSSL DSRL DSRA DSLLV DSRIV DSRAV | 邏輯左移 邏輯右移 算數右移 D_代表立即數,D_V代表變數 |
SLT SLTI SLTU SLTIU | 小於 小於立即數 小於無符號 小於無符號立即數 |
控制語句 |
條件控制語句,對PC更改 |
BEQZ BNEZ | GPR等於0跳轉,GPR不等於0跳轉 |
BEQ BNE | 兩個GPR相等跳轉 不相等跳轉 |
BC1T BC1F | FP狀態暫存器測試對比位為1跳轉,為0跳轉 |
MOVN MOVZ | GPR資料轉移到另一個GPR,如果第三個GPR為負數,為0 |
J JR | 26-bit位移量相對PC+4;跳轉到暫存器中記錄的分支目標地址 |
TRAP | 移交作業系統 |
ERET | 異常返回 |
浮點操作 |
SP,DP操作 |
ADD.D ADD.S ADD.PS | 雙精度加 單精度加,兩個單精度加 |
SUB.D SUB.S SUB.PS | 雙精度減,單精度減,兩個單精度減 |
MUL.D MUL.S MUL.PS | 雙精度乘 單精度乘 兩個單精度乘 |
MADD.D MADD.S MADD.PS | 雙精度乘加 單精度乘加 兩個單精度乘加 |
DIV.D DIV.S DIV.PS | 雙精度除 單精度除 兩個單精度除 |
CVT.%.% | 型別轉換語句,第一個型別轉換為第二個型別 %=L 64bit長整型 ;W 32bit整型 ;DP;SP所有資料儲存在FPR |
C .%.D C.%.S | %=LT GT LE GE EQ NE,結果記錄FP狀態暫存器 |