MIPS16e指令执行步骤20100409 二
mips汇编指令手册

MIPS汇编指令手册是一本详细介绍MIPS架构下汇编语言的书籍。
它包含了所有MIPS处理器支持的指令,以及这些指令的具体用法和示例。
首先,我们需要了解什么是MIPS架构。
MIPS(Microprocessor without Interlocked Pipeline Stages)是一种精简指令集计算机(RISC)架构,由斯坦福大学开发。
它的设计理念是简单、清晰和易于实现,这使得它在嵌入式系统和教育领域得到了广泛的应用。
在MIPS汇编指令手册中,我们可以看到各种类型的指令,包括数据传输指令、算术逻辑指令、控制流指令等。
每种指令都有其特定的格式和操作数,例如,数据传输指令通常包括一个源操作数和一个目标操作数,而算术逻辑指令则可能有一个或多个操作数。
在编写MIPS汇编程序时,我们需要遵循一定的规则。
首先,我们需要使用正确的指令格式。
其次,我们需要确保我们的程序没有语法错误。
最后,我们需要确保我们的程序能够正确地执行我们想要的操作。
在实际操作中,我们可以使用MIPS汇编器来编译我们的程序。
MIPS汇编器会将我们的汇编代码转换为机器代码,然后我们可以将这个机器代码加载到MIPS处理器上运行。
总的来说,MIPS汇编指令手册是学习和使用MIPS汇编语言的重要工具。
通过阅读和理解这本书,我们可以掌握MIPS汇编语言的基本知识和技能,从而能够编写出高效、可靠的MIPS 汇编程序。
mips基础指令

mips基础指令MIPS(Microprocessor without Interlocked Pipeline Stages)是一种高性能的RISC(Reduced Instruction Set Computing)指令集架构,其指令集被广泛应用于工业控制、嵌入式系统、服务器等领域。
MIPS指令集的特点是指令精简、寄存器丰富、执行效率高。
本文将主要介绍MIPS基础指令,帮助初学者快速入门。
一、MIPS基础指令结构MIPS指令的格式为“操作码r1,r2,r3”,其中操作码指示了该指令的功能,而r1、r2、r3分别指定了指令所需的操作数,通常为寄存器或常数。
以下是MIPS指令的分类:1.算术指令算术指令主要包括加、减、乘、除等指令,其中最基本的指令为ADD指令,格式为“ADD r1,r2,r3”,表示将r2和r3的值相加,存放到r1中。
其他的算术指令根据功能的不同,指定相应的操作码。
2.逻辑指令逻辑指令主要包括与、或、非、异或等指令,同样地,最基本的指令为AND指令,格式为“AND r1,r2,r3”,表示将r2和r3的值进行与运算,存放到r1中。
其他的逻辑指令根据功能的不同,指定相应的操作码。
3.移位指令移位指令主要包括逻辑左移、逻辑右移以及算术右移等指令,其中最基本的指令为SLL指令,格式为“SLL r1,r2,n”,表示将r2的值向左移动n位,空出的低位用0填充,存放到r1中。
其他的移位指令根据功能的不同,指定相应的操作码。
4.存取指令存取指令主要包括读、写、加载等指令,其中最基本的指令为LOAD指令,格式为“LOAD r1,addr”,表示将存储在addr地址中的数据加载到r1中。
其他的存取指令根据功能的不同,指定相应的操作码。
5.分支指令分支指令主要包括BZ(分支为零)、BC(分支为给定条件)、J(无条件跳转)等指令,其中最基本的指令为JUMP指令,格式为“JUMP addr”,表示将程序的控制跳转到addr地址处。
c语言 mips指令

c语言 mips指令MIPS指令集是一种32位精简指令集(RISC)体系结构,它在计算机体系结构领域具有非常广泛的应用。
在编写C语言程序时,通常需要将高级语言的代码转化为MIPS指令集的汇编代码。
以下是一些关于C语言和MIPS指令集的相关参考内容,其中不包含链接的详细解释:1. C语言的数据类型映射到MIPS指令集的寄存器:- int类型通常映射到整数寄存器($t0-$t9)- float类型通常映射到浮点寄存器($f0-$f31)- char类型通常也映射到整数寄存器,但需要使用指令来执行字节操作2. C语言的条件语句(if-else语句)在MIPS指令集中的实现: - 使用比较指令(比如"slt", "sltu")将两个操作数进行比较- 根据比较的结果,使用分支指令(比如"beq", "bne", "j")跳转到不同的代码块- 可以使用标签(label)来标记不同的代码块,以便跳转3. C语言的循环语句(for循环、while循环)在MIPS指令集中的实现:- 使用比较指令判断循环条件,如果条件满足,则执行循环体内的指令- 在循环体内执行相应的操作,包括更新循环变量的值- 使用分支指令(比如"beq", "bne", "j")跳转到循环开头或循环结束的位置4. C语言的函数调用和参数传递在MIPS指令集中的实现:- 使用特殊的寄存器(比如$ra、$fp、$sp)来保存函数的返回地址、帧指针和栈指针- 将函数参数保存在寄存器或者栈中,并在函数内部使用它们- 使用分支指令跳转到函数的入口,执行函数体内的指令- 使用jr指令返回到调用函数的位置5. C语言中的数组和指针在MIPS指令集中的实现:- 使用基址寄存器(比如$gp)和偏移量来访问数组的元素- 使用la指令加载数组的地址到寄存器,使用lw和sw指令进行读取和存储操作- 使用指针变量保存地址,进行间接寻址操作6. C语言中的结构体和联合体在MIPS指令集中的实现:- 结构体和联合体的成员通常按照顺序在内存中排列- 使用指令来访问结构体和联合体的成员,比如使用lb和sb指令加载和存储字节型成员这些参考内容可以帮助程序员理解在C语言程序中,各种语法和语义对应着MIPS指令集的实现方式。
MIPS常用指令

寄存器的内容到另外一个寄存器
根据地址向量转入管态
从异常中返回到用户态
一个双精度浮点数与单精度浮点数相乘加,
结果为单精度
一个双精度浮点数与单精度浮点数相乘加, 结果为双精度
两个单精度浮点数相乘加,结果为单精度
两个定点寄存器的内容相除,也就是定点除 DDIV R1,R2,R3
不带符号的除法运算
DDIVU R1,R2,R3
一个双精度浮点数除以一个单精度浮点数, DIV.S F1,F2,F3 结果为单精度浮点数
一个双精度浮点数除以一个单精度浮点数, DIV.D F1,F2,F3
结果为双精度浮点数
两个单精度浮点数相除,结果为单精度
把一个数据从定点寄存器复制到浮点寄存器 MFC1 R1,F1
把一个数据从浮点寄存器复制到定点寄存器 MTC1 R1,F1
把一个 16 位的立即数填入到寄存器的高 16 LUI R1,#42
位,低 16 位补零
双字逻辑左移
DSLL R1,R2,#2
双字逻辑右移
DSRL R1,R2,#2
双字算术右移
DSRA R1,R2,#2
结果为双精度浮点数
两个单精度浮点数相乘,结果为单精度浮点 DMUL.PS F1,F2,F3
数
与运算,两个寄存器中的内容相与
ANDR1,R2,R3
一个寄存器中的内容与一个立即数相与
ANDIR1,R2,#3
或运算,两个寄存器中的内容相或
ORR1,R2,R3
一个寄存器中的内容与一个立即数相或
ORIR1,R2,#3
功能与 LB 指令相同,但读出的是不带符号的 LBU R1, 0(R2)
数据
功能与 LH 指令相同,但读出的是不带符号的 LHU R1, 0(R2)
mips基础指令

mips基础指令【最新版】目录1.MIPS 简介2.MIPS 基础指令的分类3.MIPS 基础指令的寻址方式4.MIPS 基础指令的示例与解释正文MIPS(Machine Independent Programming System) 是一种基于RISC(Reduced Instruction Set Computer) 架构的处理器指令集。
与CISC(Complex Instruction Set Computer) 架构相比,RISC 架构的特点是指令集简单、每个指令执行的时间固定、且大部分指令可以在一条时钟周期内完成。
MIPS 基础指令包括以下几类:1.移动指令:将数据从一个寄存器移动到另一个寄存器或者内存地址中。
2.算术指令:包括加法、减法、乘法和除法等基本算术运算。
3.逻辑指令:包括位运算和逻辑运算。
4.跳转指令:用于改变程序的执行流程,包括条件跳转和无条件跳转两种。
5.调用和返回指令:用于实现子程序的调用和返回。
MIPS 基础指令的寻址方式包括以下几种:1.寄存器寻址:直接使用寄存器中的地址。
2.立即数寻址:直接使用指令中的立即数。
3.内存寻址:使用内存地址作为操作数的来源。
4.相对寻址:使用寄存器中的地址与指令中的偏移量相加得到操作数的地址。
5.基址寻址:使用基址寄存器中的地址与指令中的偏移量相加得到操作数的地址。
6.索引寻址:使用寄存器中的地址与指令中的索引值相加得到操作数的地址。
以下是一些 MIPS 基础指令的示例与解释:1.移动指令:将寄存器$t0 中的数据移动到寄存器$t1 中。
指令:move $t1, $t02.算术指令:将寄存器$t0 中的数据加上寄存器$t1 中的数据,并将结果存储在寄存器$t2 中。
指令:add $t2, $t0, $t13.逻辑指令:将寄存器$t0 中的数据与寄存器$t1 中的数据进行按位与运算,并将结果存储在寄存器$t2 中。
指令:and $t2, $t0, $t14.跳转指令:如果寄存器$t0 中的值为 0,则跳转到地址 0x1000 处执行指令;否则继续执行下一条指令。
MIPS指令单周期CPU设计

Data memory
rd rs rt
Register File
PC
执行步骤(3/5)
instruction memory
ALU
MUX
+4
imm 2. Decode/ Register Read
1. Instruction Fetch
3. Execute 4. Memory 5. Register Write
– 将结果写入目的寄存器
需要保存的值
– PC、寄存器组、存储器
二、典型指令的数据通路
ADDU and SUBU – addu rd,rs,rt
31 op 6 bits 31 op 6 bits 26 rs 5 bits 26 rs 5 bits 21 rt 5 bits 21 rt 5 bits 16 immediate 16 bits 16 rd 5 bits 11 6 shamt 5 bits funct 6 bits 0 0
ALU
MUX
+4
imm 2. Decode/ Register Read
1. Instruction Fetch
3. Execute 4. Memory5. Register Write
Phase 1: Instruction Fetch (IF)
– Fetch 32-bit instruction from memory – Increment PC (PC = PC + 4)
Data memory
rd rs rt
Register File
PC
执行步骤(2/5)
instruction memory
ALU
MUX
MIPS指令学习二

MIPS指令学习⼆1、MIPS寻址⽅式 MIPS架构的寻址模式有寄存器寻址、⽴即数寻址、寄存器相对寻址和PC相对寻址4种,其中寄存器相对寻址、PC相对寻址介绍如下:1.1、寄存器相对寻址 这种寻址模式主要被加载/存储指令使⽤,其对⼀个16位的⽴即数进⾏符号扩展,然后与指定通⽤寄存器的值相加,从⽽得到有效地址。
通⽤寄存器GRP + 16位⽴即数做符号扩展 = 有效地址1.2、PC相对寻址 这种寻址模式主要被转移指令使⽤。
在转移指令中有⼀个16位的⽴即数,将其左移2位并进⾏符号扩展,然后与程序计数器PC的值相加,可得到有效地址。
程序计数器PC + 16位⽴即数左移2位并做符号扩展 = 有效地址2、MIPS指令集2.1、MIPS指令特点MIPS固定4字节指令长度。
内存中的数据访问(load/store)必须严格对齐(⾄少4字节对齐)。
跳转指令只有26位⽬标地址,加上2位对齐位,可寻址28位寻址空间,即256MB。
条件分⽀指令只有16位跳转地址,加上2位对齐位,共18位寻址空间,即256KB。
MIPS默认不把⼦函数的返回地址(就是调⽤函数的受害指令地址)存放到栈中,⽽是存放到$31($ra)寄存器中,这对那些叶⼦函数(在函数中不再调⽤其他函数的函数)有利。
如果遇到嵌套函数,有其他机制处理。
流⽔线效应。
MIPS采⽤了⾼度的流⽔线,其中⼀个最重要的效应就是分⽀延迟效应。
在分⽀跳转语句后⾯的那条语句叫做分⽀延迟槽。
实际上,在程序执⾏到分⽀语句时,当它刚把要跳转到的地址填充好(填充到代码计数器⾥),还没有完成本条指令时,分⽀语句后⾯的那个指令就已经执⾏了,其原因就是流⽔线效应 ---- ⼏条指令同时执⾏,只是处于不同的阶段。
流⽔线效应: mov $a0, $s2 jalr strrchr move $a0, $s0 在执⾏第2⾏跳转分⽀时,第3⾏的move指令已经执⾏完了。
因此,在上⾯指令序列中,strrchr函数的参数来⾃第3⾏的$s0,⽽不是第1⾏的$s2。
MIPS-16指令流程表

WB REG[rz]=C REG[rz]=C T=C REG[rx]=C REG[rx]=C REG[rx]=C REG[rx]=C REG[rx]=C REG[rx]=C REG[rx]=C REG[rx]=C REG[rx]=C REG[rx]=C REG[rx]=C T=C T=C REG[rx]=C REG[rx]=C IH=C REG[rx]=C SP=C WB REG[rx]=C REG[rx]=C SP=C REG[rx]=C REG[ry]=DR REG[rx]=DR
REG[rx]=C T=C T=C T=C WB
A=RA A=REG[rx]
PC=A C=PC PC=A
RA=C
0 7
0 6
0 0 5 4 3 imm imm imm imm imm 0 0
imm 2 1
0
IF
IR<MEM[PC] 0 0 0 PC<-PC+1
0
01 1
0 0
1 1
0
0 0 rx
0 1
0 1
1 0
0 0
0 0
0 0
0 0
0 0
ID A=REG[rx],B=REG[ry] A=REG[rx],B=REG[ry] A=REG[rx],B=REG[ry] B=REG[ry] A=REG[rx],B=REG[ry] A=REG[rx],B=REG[ry] B=REG[ry] A=REG[rx],B=REG[ry] B=REG[ry] A=REG[rx],B=REG[ry] B=REG[ry] A=REG[rx],B=REG[ry] B=REG[ry] A=REG[rx],B=REG[ry] A=REG[rx],B=REG[ry] A=REG[rx],B=REG[ry] A=IH A=REG[rx] B=REG[ry] A=REG[rx] ID A=REG[rx] B=REG[ry] A=SP A=SP A=REG[rx] A=SP A=REG[rx] A=SP A=SP A=REG[rx] A=REG[rx] A=REG[rx] ID C=se-imm+PC A=REG[rx] A=REG[rx] C=se-imm+PC C=se-imm+PC C=se-imm+PC A=REG[rx]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PC←(PC) + 1
A ←reg [rx] B ←reg [ry] A ←reg [rx] B ←reg [ry]
PC←? (PC)+imm (rx)比较 比较(ry) 比较 或比较 imm, 设置T的值 设置 的值 IH ← (rx) 数据计算、传送、 数据计算、传送、 移位并保存结果 到C 数据计算、传送、 数据计算、传送、 移位等 并保存结果到 C 写内存 或 读内存内容到 D REG ← C
扩展 Immediate 三态门
3
IH
数据总线 Clock
A、B IR_op sa
001
011
010
Sif
Sid
Sexe
其他指令
100
101
Swb lw,lw_sp
cmp,cmpi b, bteqz stl,stlu,slti btnez, jrra sltui,jr,jrjr beqz,bnez
Smem sw,sw_sp,sw_ra
MIPS16e 多周期 CPU 指令执行步骤
reg[rx]←reg[rx] or reg[ry]
RR型指令 (OR):取指、读寄存器组并暂存、执行计算并暂存结果、结果写回寄存器组。 型指令 :取指、读寄存器组并暂存、执行计算并暂存结果、结果写回寄存器组。 取指: 内容送到主存地址 读主存, 接收从主存读出的指令内容 内容送到主存地址, 接收从主存读出的指令内容; 取指:PC内容送到主存地址,读主存,IR接收从主存读出的指令内容; PC←(PC)+1; 读寄存器组并暂存: 编号读出寄存器组中2个数据 个数据, 寄存器; 读寄存器组并暂存:用 rx 和 ry 编号读出寄存器组中 个数据,分别暂存到 A、B寄存器; 、 寄存器 ALU执行计算并暂存结果:A、B 内容送 执行计算并暂存结果: 、 内容送ALU输入端,ALU执行或运算,结果送 C; 输入端, 执行或 执行计算并暂存结果 输入端 执行 运算, ; 结果写回寄存器组: 的内容送寄存器组数据写入端,还要提供写入寄存器的编号和写命令。 结果写回寄存器组:C 的内容送寄存器组数据写入端,还要提供写入寄存器的编号和写命令。
典型指令的格式、 典型指令的格式、编码与功能汇总表
序号 指令格式 指令编码 指令功能 寄存器类型的指令, 寄存器类型的指令,有3地址、有2地址、有1地址这样3种不同的格式 地址、 地址、 地址这样3 1 2 3 4 5 ADDU rx ry rz OR rx ry 15~11=1c, 1~0=01 15~11=1d, 4~0=0c 15~11=1d, 4~0=0A 15~11=1d, 7~0=40 15~11=06, 1~0=00, 4-2是 sa 是 rz←rx + ry rx← rx | ry if (rx= ry) T=0, 否则 =1 0 1 rx← PC rx← ry<<8 if sa=0 否则 rx← ry<< sa (L)
各类指令在不同周期需要完成的功能
周期 指令类型 转移指令_1 转移指令 取指周期 Sif IR←MEM [PC] 译码周期 Sid
(PC)+imm PC←? 或 RA
执行周期 Sexe
访存周期 Smem
写回周期 Wb
转移指令_2 转移指令 设置T值的 设置 值的 指令 MTIH 指令 R型指令 型指令
MIPS16e 多周期 CPU 系统硬件组成
控制器由程序计数器PC、指令寄存器 、节拍发生器Timing、控制单元 组成,还用 组成, 控制器由程序计数器 、指令寄存器IR、节拍发生器 、控制单元CU组成 保存程序断点) 控制器选用硬连线的、多指令周期方案实现。 到 RA (保存程序断点 。控制器选用硬连线的、多指令周期方案实现。 保存程序断点 运算器由寄存器组REG、算逻单元 组成, 个专用寄存器A、 、 、 、 , 运算器由寄存器组 、算逻单元ALU组成,还用到 个专用寄存器 、B、D、C、H, 组成 还用到4个专用寄存器 分别用于存从REG、MEM取出的数据、 ALU结果、中断编码;SP:堆栈指针,T: 触发器。 取出的数据、 结果、 堆栈指针, 触发器。 分别用于存从 、 取出的数据 结果 中断编码; 堆栈指针 整机有主存储器 串口,其地址来自PC 或 C,写入数据来自寄存器 、A 或 RA,读出 主存储器和 整机有主存储器和串口,其地址来自 ,写入数据来自寄存器B、 , 采用与主存统一编址方式处理, 的指令存IR,数据存DR;串口采用与主存统一编址方式处理 需要用到片选、读写命令。 的指令存 ,数据存 ;串口采用与主存统一编址方式处理,需要用到片选、读写命令。 系统中还有完成数据来源选择、数据长度扩展、数据移位和三态输出控制功能的电路。 系统中还有完成数据来源选择、数据长度扩展、数据移位和三态输出控制功能的电路。
MIPS16e ]+reg[ry]
RRR型指令 (ADDU):取指、读寄存器组并暂存、执行计算并暂存结果、结果写回寄存器组。 型指令 :取指、读寄存器组并暂存、执行计算并暂存结果、结果写回寄存器组。 取指: 内容送到主存地址 读主存, 接收从主存读出的指令内容 内容送到主存地址, 接收从主存读出的指令内容; 取指:PC内容送到主存地址,读主存,IR接收从主存读出的指令内容; PC←(PC)+1; 读寄存器组并暂存: 编号读出寄存器组中2个数据 个数据, 寄存器; 读寄存器组并暂存:用 rx 和 ry 编号读出寄存器组中 个数据,分别暂存到 A、B寄存器; 、 寄存器 ALU执行计算并暂存结果:A、B 内容送 执行计算并暂存结果: 、 内容送ALU输入端,ALU执行加法运算,结果送 C; 输入端, 执行加法运算, 执行计算并暂存结果 输入端 执行加法运算 ; 结果写回寄存器组: 的内容送寄存器组数据写入端,还要提供写入寄存器的编号和写命令。 结果写回寄存器组:C 的内容送寄存器组数据写入端,还要提供写入寄存器的编号和写命令。
把指令的执行过程划分成5 把指令的执行过程划分成5 个步骤,分别是: 个步骤,分别是:取指周期 Sif, 译码周期 Sid, 执行周期 Sexe, 存储器读写周期 Smem, 数据写 回周期Swb。不同类型的指令 。 回周期 个步骤中完成 在2-5个步骤中完成。 个步骤中完成。
部件之间的信号传递关系 左侧大虚线框内部分在FPGA芯片内部实现, 芯片内部实现, 左侧大虚线框内部分在 芯片内部实现 右侧的3个电路在印制电路板上 个电路在印制电路板上。 右侧的 个电路在印制电路板上。
BNEZ rx immed JR JRRA rx
JRLR rx
MIPS16e 多周期 CPU 系统指令执行步骤
指令地址 节拍发生器 Timing
WritePC ALUop IODR 译码器 电路 WriteIR ALUsrcB
是否转移的条件信号Z
控制部件 CU
WriteREG MEM toREG SE REGds A 寄 存 器
MIPS16e 多周期 CPU 指令执行步骤
reg[ry]←reg[rx] + S-e(immed)
RRI型 (ADDIU3)指令:取指、读寄存器组并暂存、执行计算并暂存结果、结果写回寄存器组。 型 指令: 指令 取指、读寄存器组并暂存、执行计算并暂存结果、结果写回寄存器组。 取指: 内容送到主存地址 读主存, 接收从主存读出的指令内容 内容送到主存地址, 接收从主存读出的指令内容; 取指:PC内容送到主存地址,读主存,IR接收从主存读出的指令内容; PC←(PC)+1; 读寄存器组并暂存: 编号读出寄存器组中2个数据 个数据, 寄存器; 读寄存器组并暂存:用 rx 和 ry 编号读出寄存器组中 个数据,分别暂存到 A、B寄存器; 、 寄存器 ALU执行计算并暂存结果:A、S-e(immed) 送ALU输入端,ALU执行加法运算,结果送 C; 执行计算并暂存结果: 、 输入端, 执行加法运算, 执行计算并暂存结果 输入端 执行加法运算 ; 结果写回寄存器组: 的内容送寄存器组数据写入端,还要提供写入寄存器的编号和写命令。 结果写回寄存器组:C 的内容送寄存器组数据写入端,还要提供写入寄存器的编号和写命令。
I型指令 型指令
访存指令
计算内存地址并 保存到 C
REG ←D
MIPS16e 多周期 CPU 指令执行步骤
在Sif周期完成读取指令的功能 Sif周期完成读取指令的功能
1、欲读指令的地址在PC中,PC的内容送存储器地址引脚,读主存,读出的指令内容送 ; 、欲读指令的地址在 中 的内容送存储器地址引脚, 的内容送存储器地址引脚 读主存,读出的指令内容送IR; 2、PC的内容加 ,得到顺序执行时的下一条指令的地址,这是经过 、 的内容加 的内容加1,得到顺序执行时的下一条指令的地址,这是经过ALU部件完成的,计算的 部件完成的, 部件完成的 结果保存回PC中 结果保存回 中。
ALUsrcA
T
IO、MEM 、 控制命令
A
RA 0 1 2
串 行 口
IR
指 令 内 容
PC
1
rx ry
A A L U B
Z C 寄 存 器 R
rz
选 择
寄 存 N2 器 堆 ND REG N1 REGin
0
0
PC
1
存 A 储 D 器
D 寄 存 器
B 寄 存 器
0 1 0 2 1 移 位 电 路
1 2 0
CMP rx ry MFPC rx SLL rx ry sa
立即数类型的指令, 含存储器读写) 立即数类型的指令,有2个寄存器和立即数运算、传送 (含存储器读写 的指令, 个寄存器和立即数运算、 含存储器读写 的指令, 个寄存器和立即数运算、 和1个寄存器和立即数运算、比较的指令 6 7 8 9 10 11 12 13 14 ADDIU3 rx ry immed ADDIU rx immed CMPI rx immed LW rx ry immed 15~11=08, 4~0=0 immed 15~11=09, 7~0=immed 15~11=1e, 7~0=immed 15~11=13, 4~0=immed ry← rx + S_e(immed) rx← rx + S_e(immed) if (rx=immed) T=1,否=0 , ry←Mem(rx+S_eimmed)