MIPS-mini指令集手册

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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指令。

)

相关文档
最新文档