MIPS-mini指令集手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
盖了功能访运分跳 每编码 格式 描述 操作
示例 约束
编码
格式 描述
操作
示例 其他
本文从MIP 了MIPS 指令分类 指令类型访存
I-TYPE I-TYPE 运算
R-TYP R-TYP R-TYP 分支 I-TYPE 跳转
J-TYPE 每条指令具体表2:lw
31 26 lw 100011
6 lw rt, offset(GPR[rt] ← m Addr ← GPR GPR[rt] ← m lw $v1, 8($s Addr 必须是否则产生地表4:31 26 25 2special 000000
rs
6 5 add rd, rs, rt GPR[rd] temp ← (GP (GPR[rt]31||G if temp 32 ≠ te Signa else GPR[r add $s1, $s2不考虑溢出PS 指令集中选令集中典型的型 助记符
E LW E
SW
PE ADD
PE SUB PE
OR E BEQ 等E
J
体的指令编码w 加载字 25 21 20 base
rt
5 5 (base)
memory[GPR[b R[base] + sign_memory[Addr] 0)
是4的倍数(即Ad 地址错误异常
add 加 21 20 16 15 1rt rd
5 5
GPR[rs]+GPR[PR[rs]31||GPR[rs GPR[rt])
emp 31 then
alException(Int rd] ← temp 31..0 , $s3 。
MIPS 选择了7条典R-TYPE 指令表1
功能 OPC 加载字 存储字 加 减 或 等于转移跳转
码、指令功能 16 15 offset
16
base]+offset] _ext(offset)
ddr 1..0必须为00 11 10 6 5 0 00000ad 100 5 6[rt] s]) + tegerOverflow)
S-mini 指典型的指令构令、I-TYPE 1 MIPS-mini CODE/FUNCT (16 进制) 23H 2BH 0/20H 0/22H 0/25H 4H 2H
能以及约束如 00), 0dd
0000
)
编码格式描述操作示例其他
编码格式描述操作示例约束指令集
构成了MIPS 指令、J-TY 指令集 T
(R[rt] = Me Mem[ GPR GPR[rd] =GPR[rd] =GPR[rd] = if (GPR[rs]PC = PC PC= JumpA 如表2至表8所 表3: 码
31 26 25special 000000
6 式or rd, rs, r 述GPR[rd] 作GPR[rd] 例or $s1, $s 他
码
31 26sw 101011
6 式sw rt, offse 述memory[GP 作
Addr ← GP memory[A 例sw $v1, 8($束Addr 必须是否则产生地S-mini 指令集PE 指令,如操作
(VerilogHDL 语em[ GPR[rs]+si R[rs]+sign_ext(GPR[rs] + GPR GPR[rs] - GPR GPR[rs] | GPR ] == GPR[rt]) C + 4 + BranchA Addr
所示。
sw 存储字
表5:or 或
5 21 20 1
6 15 1rs rt rd
5 5 5 rt
← GPR[rs] OR ← GPR[rs] OR 2, $s3 6 25 21 20 base
rt
5 5 t(base)
PR[base]+offse PR[base] + sign ddr] ← GPR[rt $s0)
是4的倍数(即A 地址错误异常 集。MIPS-mi 如表1所示。语法描述)
ign_ext(offset) (offset) ] = R[R[rt] R[rt] R[rt] Addr 11 10 6 5 0 00000 o
100 5 6
R GPR[rt] R GPR[rt] 16 15 offse 16 et] ← GPR[rt] n_ext(offset) t] Addr1..0必须为
ni 涵
] [rt] 0
or 0101
6 0
et
为00),
编码
格式描述
操作
示例其他31 26 25
special
000000
6
sub rd,
GPR[rd]
temp←{G
{
if temp32
SignalE
else
GPR[rd]
endif
sub $s1,
temp32≠ te
不考虑溢出
编码
格式
描述
操作
示例
其他
表6:sub减
5 21 20 1
6 15
rs rt rd
5 5 5
rs, rt
← GPR[rs] >
GPR[RS]31,GPR
{GPR[rt]31 ,GP
≠ temp31 then
xception ( Integ
] ← temp 31…
$s2, $s3
emp31 代表计算
出。
31 26 2
j
000010
6
j target
J指令是PC
可以在当前P
PC ←{ (P
j Loop_End
如果需要跳转
11 10 6 5
d
00000 1
5 5
>> GPR[rt]
R[rs]}–
R[rt] }
gerOverflow )
算结果溢出。
表
25
相关的转移指
PC所在的256
PC31 . . 28), i
d
转范围超出了当
sub
00010
6
编码
格式
描述
操作
示例
其他
8:J跳转
instr_in
26
指令。当把4GB
6MB区域内任
instr_index, 2
当前PC所在的
表7:be
码
31 26 2
beq
000100
6
式beq rs,
述If ( GPR[r
作
If ( GPR[r
PC←PC
else
PC ← P
例beq $s1
他
转
ndex
6
B划分为16
意跳转。
2’b00 }
的256MB区域
eq相等转移
25 21 20 1
rs rt
5 5
rt, offset
rs] == GPR[rt]
rs] == GPR
C+4 + sign_ext
PC + 4
, $s2, -2
个256MB区域,
内时,可以使J
16 15 0
offset
16
) then 转移
R[rt] )
tend( offset||02 )
,j指令
JR指令。
移
)