0


MIPS指令详解

目录

一.R型指令

(1)R型指令格式

000000 (op)RsRtRdshamtfunct6bits5bits5bits5bits5bits6bits
注意: 该类型指令操作数和保存结果均通过寄存器进行。
操作含义op操作码,所有R型指令都全为0rs寄存器编号,对应第一个源操作数rt寄存器编号,对应第二个源操作数rd寄存器编号,保存结果shamt常数,在移位指令中使用funct功能码,指定指令的具体功能

(2)具体R型指令

注意: R型指令根据操作的寄存器数可以分为三种不同类型。

【1】带有3个寄存器

指令[31 : 26][25 : 21][20 : 16][15 : 11][10 : 6][5 : 0]指令功能add000000rsrtrd00000100000寄存器加sub000000rsrtrd00000100010寄存器减and000000rsrtrd00000100100寄存器与or000000rsrtrd00000100101寄存器或xor000000rsrtrd00000100110寄存器异或

$rd = $rs op $ rt

【2】带有2个寄存器

指令[31 : 26][25 : 21][20 : 16][15 : 11][10 : 6][5 : 0]指令功能sll00000000000rtrdsa100000逻辑左移srl00000000000rtrdsa000010逻辑右移sll00000000000rtrdsa000011算术右移

$rd = $rt shift sa

【3】带有1个寄存器

指令[31 : 26][25 : 21][20 : 16][15 : 11][10 : 6][5 : 0]指令功能jr000000rs000000000000000001000寄存器跳转

jr rs;
PC = rs

二.I型指令

(1)I型指令格式

OPRsRtimm(立即数)6bits5bits5bits16bits
注意: 操作数中涉及立即数,结果保存到寄存器
操作含义op标识指令的操作功能rs第一个源操作数,是寄存器操作数rt目的寄存器编号,用来保存运算结果imm第二个源操作数,立即数

(2)具体I型指令

注意: I型指令存在4种不同的类型

【1】面向运算的I型指令

指令[31 : 26][25 : 21][20 : 16][15 : 0]指令功能addi001000rsrtimm寄存器和立即数“加”andi001100rsrtimm寄存器和立即数“与”ori001101rsrtimm寄存器和立即数“或”xori001110rsrtimm寄存器和立即数“异或”

第一条指令是对立即数进行符号拓展,其他都是0拓展
addi rt, rs, imm;
$rt = $rs op E(imm)

【2】面向访存的I型指令

指令[31 : 26][25 : 21][20 : 16][15 : 0]指令功能lw100011rsrtimm从存储器种读取数据sw101011rsrtimm把数据保存到存储器

MIPS 32中唯一两条访问存储器的指令(RISC)
lw rt, imm(rs) #

     r
    
    
     t
    
    
     =
    
    
     m
    
    
     e
    
    
     m
    
    
     [
    
   
   
    rt = mem[
   
  
 rt=mem[rs+E(imm)]

sw rt, imm(rs) #

     m
    
    
     e
    
    
     m
    
    
     [
    
   
   
    mem[
   
  
 mem[rs+E(imm)] = $rt

【3】面向数位设置的I型指令

指令[31 : 26][25 : 21][20 : 16][15 : 0]指令功能lui00111100000rtimm设置寄存器的高16位

lui rt, imm #$rt = imm<<16(空位补0)

【4】面向条件转移(分支)的I型指令

指令[31 : 26][25 : 21][20 : 16][15 : 0]指令功能beq000100rsrtimm寄存器相等则转移bne000101rsrtimm寄存器不相等则转移

beq rs, rt, imm #if(

     r
    
    
     s
    
    
     =
    
    
     =
    
   
   
    rs==
   
  
 rs==rt) PC=PC+E(imm)<<2

bne rs, rt, imm #if(

     r
    
    
     s
    
    
     !
    
    
     =
    
   
   
    rs!=
   
  
 rs!=rt) PC=PC+E(imm)<<2

标准的PC相对寻址方式

三.J型指令

(1)J型指令格式

OP立即数6bits26bits

(2)具体J型指令

指令[31 : 26][25 : 0]指令功能j000010address无条件跳转jal001100address调用与联接

j address;
$ PC=($PC+4)H4U(address<<2)

jal address;
$ra = $PC+4(保存返回地址)
$ PC=($PC+4)H4U(address<<2)

四.举例

(1)关于R型指令

不同功能的R型指令使用的寄存器数量不一定相同,有一个、两个、三个

所有R型指令的操作码OP字段均为000000

R型指令既有算术运算指令,也有逻辑运算指令,它不支持访问主存的指令

(2)关于J造型指令

J型指令支持无条件跳转指令

J性指令只使用伪直接寻址方式

J型指令执行后,PC寄存器的值最后两位一定为00

J型指令需要使用ra寄存器

参考:华中科技大学mooc计算机组成原理

标签: MIPS指令详解

本文转载自: https://blog.csdn.net/weixin_46308081/article/details/115798605
版权归原作者 桃陉 所有, 如有侵权,请联系我们删除。

“MIPS指令详解”的评论:

还没有评论