MIPS汇编语言指令分类及寻址模式

在这里插入图片描述

一、相关概念

  • 指令集:一个给定的计算机体系结构所包含的指令集合。
  • 存储程序概念:多种类型的指令和数据均以数字形式存储于存储器的概念,存储程序型计算机即缘于此。1

二、MIPS操作数之32个寄存器

寄存器名字寄存器编号寄存器功能
$zero$0恒等于零
$at$1被汇编器保留,用于处理大的常数
$v0 – $v1$2-$3存放函数返回值
$a0 – $a3$4-$7传递函数参数
$t0 – $t7$8-$15存放临时变量
$s0 – $s7$16-$23存放需要保存的临时值
$t8 – $t9$24-$25额外的存放临时变量
$k0 – $k1$26-$27用于操作系统内核
$gp$28指向全局变量的指针
$sp$29指向栈顶的指针
$fp$30指向栈帧的指针
$ra$31返回地址,用于函数调用

三、MIPS汇编语言指令类型及寻址方式

1. R型指令

R型指令

2. I型指令

I型指令
I

3. J型指令

J型指令

四、MIPS类型及寻址方式分析

1. MIPS字段命名

op(6位)rs(5位)rt(5位)rd(5位)shamt(5位)funct(6位)
  • op:指令的基本操作,成为操作码
  • rs:第一源操作数寄存器
  • rt:第二源操作数寄存器
  • rd:存放操作结果的目的寄存器
  • shamt:位移量
  • funct:功能码

2. 指令类型

  • R型【op为0】
op(6位)rs(5位)rt(5位)rd(5位)shamt(5位)funct(6位)
  • I型
op(6位)rs(5位)rt(5位)immediate(16位)
  • J型
op(6位)immediate(26位)

3. MIPS寻址方式

MIPS寻址方式


  1. 《计算机组成与设计》第五版翻译版 ↩︎

  • 11
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
MIPS汇编指令通常被分为三种类型:R型指令、I型指令和J型指令。下面分别介绍这三种类型指令的特点和常见指令: 1. R型指令 R型指令MIPS汇编中最常用的一种指令类型,它的格式固定为: ``` opcode rd, rs, rt ``` 其中,`opcode` 表示操作码,`rd`、`rs`、`rt` 分别表示目标寄存器、源寄存器1和源寄存器2。R型指令没有立即数,它的操作数都保存在寄存器中。 常见的R型指令有: - `add`:将两个寄存器的值相加,结果保存到目标寄存器中。 - `sub`:将两个寄存器的值相减,结果保存到目标寄存器中。 - `and`:将两个寄存器的值进行按位与操作,结果保存到目标寄存器中。 - `or`:将两个寄存器的值进行按位或操作,结果保存到目标寄存器中。 - `xor`:将两个寄存器的值进行按位异或操作,结果保存到目标寄存器中。 - `slt`:比较两个寄存器的值,如果第一个值小于第二个值,则将目标寄存器的值设置为1,否则设置为0。 - `sll`:将一个寄存器的值左移指定的位数,结果保存到目标寄存器中。 - `srl`:将一个寄存器的值右移指定的位数,结果保存到目标寄存器中。 - `jr`:无条件跳转到寄存器中保存的地。 2. I型指令 I型指令MIPS汇编中比较常用的一种指令类型,它的格式通常为: ``` opcode rt, rs, immediate ``` 其中,`opcode` 表示操作码,`rt` 和 `rs` 分别表示目标寄存器和源寄存器,`immediate` 表示立即数。I型指令的操作数通常包括寄存器和立即数。 常见的I型指令有: - `addi`:将一个寄存器的值加上一个立即数,结果保存到目标寄存器中。 - `lw`:将一个字(4个字节)的数据从内存中加载到寄存器中。 - `sw`:将一个字(4个字节)的数据从寄存器中存储到内存中。 - `beq`:比较两个寄存器的值是否相等,如果相等则跳转到指定的地执行。 - `bne`:比较两个寄存器的值是否不相等,如果不相等则跳转到指定的地执行。 - `slti`:将一个寄存器的值和立即数进行比较,如果寄存器的值小于立即数,则将目标寄存器的值设置为1,否则设置为0。 3. J型指令 J型指令用于实现跳转和分支等控制流程操作,它的格式通常为: ``` opcode target ``` 其中,`opcode` 表示操作码,`target` 表示目标地。J型指令的目标地通常是一个跳转标签或者一个绝对地。 常见的J型指令有: - `j`:无条件跳转到指定的地执行。 - `jal`:跳转到指定的地执行,并将返回地保存到 `$ra` 寄存器中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值