load指令 | 访存有效地址:Regs[rs]+immediate | 从存储器取来的数据放入寄存器rt中 |
store指令 | 访存有效地址:Regs[rs]+immediate | 从存储器取来的数据放入寄存器rt中 |
立即数指令 | Regs[rt]<---Regs[rs] op immediate | |
分支指令 | 目标转移地址:Regs[rs]+immediate | rt无用 |
寄存器跳转、寄存器跳转并连接 | 转移目标地址为Regs[rs] |
LD R2,20(R3) | 装入双字 | Regs[R2]<---64(Mem[20+Regs[R3]]) |
LW R2,40(R3) | 装入字 | Regs[R2]<---64(Mem[40+Regs[R3]]0)32 ## Mem[40+Regs[R3]] |
LB R2,30(R3) | 装入字节 | Regs[R2]<---64(Mem[30+Regs[R3]]0)56 ## Mem[40+Regs[R3]] |
LBU R2,40(R3) | 装入无符号字节 | Regs[R2]<---64056 ## Mem[40+Regs[R3]] |
LH R2,30(R3) | 装入半字 | Regs[R2]<---64(Mem[30+Regs[R3]]0)48 ## Mem[30+Regs[R3]]##Mem[31+Regs[R3]] |
L.S F2,60(R4) | 装入半字 | Regs[F2]<---64Mem[60+Regs[R4]] ## 032 |
L.D F2,40(R3) | 装入双精度浮点数 | Regs[F2]<---64Mem[40+Regs[R3]] |
SD R4,300(R5) | 保存双字 | Mem[300+Regs[R5]]<---64Regs[R4] |
SW R4,300(R5) | 保存字 | Mem[300+Regs[R5]]<---32Regs[R4] |
S.S F2,40(R2) | 保存单精度浮点数 | Mem[40+Regs[R2]]<---32Regs[F2]0..31 |
SH R5,502(R4) | 保存半字 | Mem[502+Regs[R4]]<---16Regs[R5]48..63 |
DADDU R1,R2,R3 | 无符号加 | |
DADDIU R4,R5,R6 | 加无符号立即数 | |
LUI R1,#4 | 把一个立即数装入到一个字的高16位 | Regs[R1]<---032 ## 4 ## 016 |
DSLL R1,R2,#5 | 逻辑左移 | Regs[R1]<---Regs[R2]<<5 |
DSLT R1,R2,R3 | 置小于 | if(Regs[R2]<Regs[R3]) then Regs[R1]<---1 else Regs[R1]<---0 |
J name | 跳转 | PC36..63<--- name<<2 |
JAL name | 跳转并连接 | Regs[R31]<-- PC+4C36..63<---name<<2;((PC+4)-227)<=neme<((PC+4)+227) |
JALR R3 | 寄存器跳转并连接 | Regs[R31]<--- PC+4C<--Regs[R3] |
JR R5 | 寄存器跳转 | PC<-- Regs[R5] |
BEQZ R4,name | 等于零时分支 | if(Regs[R4]==0) then PC<-- name;((PC+4)-217)<=name<((PC+4)+217) |
BNE R3,R4,name | 不相等时分支 | ((PC+4)-217)<= name < ((PC+4)+217) |
MOVZ R1,R2,R3 | 等于零时移动 | if(Regs[R3]==0) then Regs[R1]<--Regs[R2] |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |