MIPS-C指令集
附录A MIPS-C 指令集
A.1 MIPS-C 指令表
本书从 MIPS 指令集中选择了一些常用指令构成了MIPS-C 指令集。MIPS-C 可以支持除
浮点运算外的绝大多数定点类程序的运行,并且提供了包括 CP0 、异常处理等指令,可以
支持简单的操作系统的运行。MIPS-C 指令集共包括 55 条指令。从更细致的功能角度,
MIPS-C 被划分为11 个子类。
功能 OPCODE/ 操作
助记符 功能 FUNCT
分类 (16 进制) (VerilogHDL 语法描述)
R[rt] = {24{Mem[GPR[rs]+sign_ext(offset)][7]},
LB 加载字节 20H/24H
Mem[GPR[rs]+sign_ext(offset)][7:0]}
加载字节 R[rt] = {24’b0, Mem[GPR[rs]+
LBU 24H
(无符号) sign_ext(offset)][7:0]}
加载 LH 加载半字 21H R[rt] = {16{Mem[GPR[rs]+sign_ext(offset)][15]},
Mem[GPR[rs]+sign_ext(offset)][15:0]}
加载半字 R[rt] = {16’b0, Mem[GPR[rs]+
LHU 25H
(无符号) sign_ext(offset)][15:0]}
LW 加载字 23H R[rt] = Mem[GPR[rs]+sign_ext(offset)]
SB 存储字节 28H Mem[GPR[rs]+sign_ext(offset)][7:0] = R[rt][7:0]
保存 SH 存储半字 29H Mem[GPR[rs]+sign_ext(offset)][15:0] =
R[rt][15:0]
SW 存储字 2BH Mem[GPR[rs]+sign_ext(offset)] = R[rt]
ADD 加 0/32H GPR[rd] = GPR[rs] + GRP[rt]
ADDU 无符号加 0/33H GPR[rd] = GPR[rs] + GRP[rt]
SUB 减 0/34H GPR[rd] = GPR[rs] - GRP[rt]
SUBU 无符号减 0/35H GPR[rd] = GPR[rs] - GRP[rt]
MULT 乘 0/24H {HI, LO} = GPR[rs] × GRP[rt]
MULTU 乘(无符号) 0/25H {HI, LO} = GPR[rs] × GRP[rt]
DIV 除 0/26H {HI, LO} = GPR[rs] / GRP[rt]
DIVU 除(无符号) 0/27H {HI, LO} = GPR[rs] / GRP[rt]
R-R SLL 逻辑左移 0/0H GPR[rd] = {GPR[rt][31-s:0], s{0}}
运算 SRL 逻辑右移 0/2H GPR[rd] = {s{0}, GPR[rt][31