MIPS指令大全

这篇具有很好参考价值的文章主要介绍了MIPS指令大全。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

52条基本指令和 5条特权指令如下:

指令

31:26

25:21

20:16

15:11

10:6

5:0

描述

8条逻辑运算指令

and rd, rs, rt

000000

rs

rt

rd

00000

100100

将rs 与rt 寄存器内的数据进行逻辑运算,结果存入rd 寄存器中

or rd, rs, rt

000000

rs

rt

rd

00000

100101

xor rd, rs, rt

000000

rs

rt

rd

00000

100110

nor rd, rs, rt

000000

rs

rt

rd

00000

100111

andi rt, rs, immediate

001100

rs

rt

immediate

addi ori xori:寄存器 rs 中的值与 0 扩展至 32 位的立即数 imm 按位逻辑运算,结果写入寄存器 rt 中。

LUI:将 16 位立即数 imm 写入寄存器 rt 的高 16 位,寄存器 rt 的低 16 位置 0。

xori rt, rs, immediate

001110

rs

rt

immediate

lui rt, immediate

001111

00000

rt

immediate

ori rs, rt, immediate

001101

rs

rt

immediate

6条移位运算指令

sll rd, rt, sa

00000

00000

rt

rd

sa

000000

由立即数sa指定位移量,sll,srl分别对寄存器rt的值逻辑左移、逻辑右移,结果写入rd寄存器中.sraj则进行算数右移(左边补上符号位)

srl rd, rt, sa

00000

00000

rt

rd

sa

000010

sra rd, rt, sa

00000

00000

rt

rd

sa

000011

sllv rd, rt, rs

00000

rs

rt

rd

00000

000100

由寄存器rs的值指定位移量,其余同上

srlv rd, rt, rs

00000

rs

rt

rd

00000

000110

srav rd, rt, rs

00000

rs

rt

rd

00000

000111

4条数据移动指令

补充:乘法中,两个32位数相乘结果位64位,而在除法中除了商数外还有余数。因此为了避免32位通用寄存器存不下这些数的问题,MIPS架构使用了额外的HI、LO寄存器来完成乘除法运算。

MFHI rd

000000

00000

00000

rd

00000

010000

HI寄存器内容->rd寄存器

MFLO rd

000000

00000

00000

rd

00000

010010

LO寄存器内容->rd寄存器

MTHI rs

000000

rs

00000

00000

00000

010001

rs寄存内容器-> HI寄存器

MTLO rs

000000

rs

00000

00000

00000

010011

rs寄存内容器->LO寄存器

14条算数指令

add rd, rs, rt

000000

rs

rt

rd

00000

100000

加(可产生溢出例外)

addu rd, rs, rt

000000

rs

rt

rd

00000

100001

加(不可产生溢出例外)

addi rt, rs, immediate

001000

rs

rt

immediate

加立即数(可产生溢出例外)

addiu rt, rs, immediate

001001

rs

rt

immediate

加立即数(不可产生溢出例外)

sub rd, rs, rt

000000

rs

rt

rd

00000

100010

减(可产生溢出例外)

subu rd, rs, rt

000000

rs

rt

rd

00000

100011

减(不可产生溢出例外)

slt rd, rs, rt

000000

rs

rt

rd

00000

101010

若rs 有符号小于 rt 则rd置1

sltu rd, rs, rt

000000

rs

rt

rd

00000

101011

若rs 无符号小于 rt 则rd置1

slti rt, rs, immediate

001010

rs

rt

immediate

若rs 有符号小于 立即数 则rd置1

sltiu rt, rs, immediate

001011

rs

rt

immediate

若rs 无符号小于 立即数 则rd置1

div rs, rt

000000

rs

rt

00000

00000

011010

有符号字除和无符号字除,rs/rt的值存入LO寄存器,rs%rt的值存入HI寄存器

divu rs, rt

000000

rs

rt

00000

00000

011011

mult rs, rt

000000

rs

rt

00000

00000

011000

有符号字乘和无符号字乘,rs*rt的低32位和高32位分别存入LO和HI寄存器中

multu rs, rt

000000

rs

rt

00000

00000

011001

12条跳转指令

beq rs, rt, offset

000100

rs

rt

offset

rs,rt寄存器内的值相等时跳转

bne rs, rt, offset

000101

rs

rt

offset

rs,rt寄存器内的值不相等时跳转

bgez rs, offset

000001

rs

00001

offset

rs寄存器内的值大于等于0时跳转

bgtz rs, offset

000111

rs

00000

offset

rs寄存器内的值大于0时跳转

blez rs, offset

000110

rs

00000

offset

rs寄存器内的值小于等于0时跳转

bltz rs, offset

000001

rs

00000

offset

rs寄存器内的值小于0时跳转

bltzal rs, offset

000001

rs

10000

offset

rs寄存器内的值小于0时跳转并保存返回地址

bgezal rs, offset

000001

rs

10001

offset

rs寄存器内的值大于等于0时跳转并保存返回地址

j target

000010

target

无条件跳转

jal targrt

000011

target

无条件跳转并保存返回地址

jr rs

000000

rs

00000

00000

00000

001000

无条件跳转至寄存器内的PC值

jral rs

000000

rs

00000

00000

00000

001001

无条件跳转至寄存器内的PC值并保存返回地址

8条访存指令

lb rt, offset(rs)

100000

rs

rt

offset

从rs偏移offset处取一个字节并做有符号扩展存入rt

lbu rt, offset(rs)

100100

rs

rt

offset

从rs偏移offset处取一个字节并做无符号扩展存入rt

lh rt, offset(rs)

100001

rs

rt

offset

从rs偏移offset处取一半字并做有符号扩展存入rt

lhu rt, offset(rs)

100101

rs

rt

offset

从rs偏移offset处取一个半字并做无符号扩展存入rt

lw rt, offset(rs)

100011

rs

rt

offset

取字

sb rt, offset(rs)

101000

rs

rt

offset

存字节

sh rt, offset(rs)

101001

rs

rt

offset

存半字

sw rt, offset(rs)

101011

rs

rt

offset

存字

5条特权指令

break

000000

code

001101

发生断点异常,立即无条件地将控制权转到异常处理程序。code字段可用作软件参数,但异常处理程序只能通过加载包含指令的内存字的内容来检索。

syscall

000000

code

001100

发生断点异常,立即无条件地将控制权转到异常处理程序。code字段可用作软件参数,但异常处理程序只能通过加载包含指令的内存字的内容来检索。

eret

010000

1 000 0000 0000 0000 0000

011000

在中断、异常或错误处理完成时返回中断指令。ERET不执行下一条指令(即,它没有延迟槽)。

mtco

010000

00100

rt

rd

0000 0000 sel(3位)

通用寄存器rt的内容加载到由rd和sel组合指定的协处理器CP0寄存器中。

mfco

010000

00000

rt

rd

0000 0000 sel(3位)

由rd和sel组合指定的CP0寄存器的数据加载到通用寄存器rt中文章来源地址https://www.toymoban.com/news/detail-417045.html

到了这里,关于MIPS指令大全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (四)Docker进阶网络模式与特权指令

    Docker支持多种网络模式,包括bridge、host、none和overlay等。不同的网络模式有不同的特点和适用场景,下面对这些网络模式进行详细的介绍。 Bridge模式 Bridge模式是Docker的默认网络模式。在Bridge模式下,Docker会创建一个虚拟的Bridge网络,Docker容器会自动加入这个网络中。Bridge网

    2024年02月09日
    浏览(37)
  • MIPS指令集的常用指令分类和相关解释

    MIPS(Microprocessor without Interlocked Pipeline Stages)是一种基于精简指令集(Reduced Instruction Set Computing,RISC)架构的32位微处理器。 MIPS指令集由约60条指令组成,支持基本的算术和逻辑运算、存储器访问、分支和跳转等操作,同时也支持异常处理和中断。MIPS架构的寄存器文件包含

    2024年02月03日
    浏览(46)
  • MIPS指令集处理器设计(支持64条汇编指令)

    一、题目背景和意义 二、国内外研究现状 (略) (1) .mips 基础 指令集格式 总结 MIPS是(Microcomputer without interlocked pipeline stages)[10]的缩写,含义是无互锁流水级微处理器。MIPS 是最早、最成功的RISC处理器之一[11],源于Stanford 大学的John Hennessy 教授的研究成果。(Hennessy 于1984年在

    2024年02月07日
    浏览(40)
  • MIPS指令集-mars-cpu

    MIPS通用寄存器 MIPS有32个通用寄存器($0-$31),各寄存器的功能及汇编程序中使用约定如下: 下表描述32个通用寄存器的别名和用途 REGISTER NAME USAGE $0 $zero 常量0(constant value 0) $1 $at 保留给汇编器(Reserved for assembler) $2-$3 $v0-$v1 函数调用返回值(values for results and expression evaluation)

    2024年02月08日
    浏览(51)
  • MIPS指令集单周期CPU兼Verilog学习

            (1)取指,PC+4         (2)译码         (3)取操作数,ALU运算         (4)访存(MEM)         (5)写回(RegWr)         将每一级操作抽象为CPU中的若干个模块:                 (1)指令读取模块(指令存储器)                 (2)指令寄存器(

    2023年04月24日
    浏览(42)
  • 基于mips指令集的处理器设计与实现

    1.mips指令集格式 2.mips寄存器特点 1.ALU模块 2.General_Register模块(通用寄存器) 3.instruction_cache模块(指令cache) 4.program_counter模块(程序计数器) 5.control模块(控制译码) MIPS是(Microcomputer without interlocked pipeline stages)的缩写,含义是无互锁流水级微处理器。MIPS 是最早的,最成功的RISC处

    2024年02月06日
    浏览(43)
  • 单周期CPU设计,MIPS结构,modelsim仿真实现,多条指令

    计算机系统的主要硬件组成包括: 计算机硬件系统由计算器、控制器、存储器、输入设备和输出设备组成,是计算机系统的物理组成部分。 1、控制器:它是分析输入指令并统一控制计算机各部件完成一定任务的部件。 它通常由指令寄存器、状态寄存器、指令译码器、时间电

    2024年02月15日
    浏览(35)
  • 计算机系统(3) 实验一:MIPS64位指令集实验

    一、   实验目标: 了解WinMIPS64的基本功能和作用; 熟悉MIPS指令、初步建立指令流水执行的感性认识; 掌握该工具的基本命令和操作,为流水线实验作准备。 二、实验内容 按照下面的实验步骤及说明,完成相关操作 记录实验过程的截图 : 1)下载WinMIPS64;运行样例代码并

    2024年02月07日
    浏览(39)
  • 基于Verilog的mips指令集单周期/五级流水cpu,modelsim/vivado仿真设计 设计

      1、了解提高CPU性能的方法。 2、掌握流水线微处理器的工作原理。 3、理解数据冒险、控制冒险的概念以及流水线冲突的解决方法。 4、掌握流水线微处理器的测试方法。 设计一种五级流水线的基于MIPS指令集的处理器,其可支持部分指令,能够处理指令相关和数据相关,使

    2024年02月12日
    浏览(41)
  • 关于“Python”Django 管理网站的核心知识点整理大全52

      目录 注意 18.2.2 激活模型 settings.py 18.2.3 Django 管理网站 1. 创建超级用户 注意 2. 向管理网站注册模型 admin.py 注意 3. 添加主题 Climbing。 18.2.4 定义模型 Entry models.py 18.2.5 迁移模型 Entry 18.2.6 向管理网站注册 Entry admin.py 往期快速传送门👆(在文章最后): 感谢大家的支持!欢

    2024年02月03日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包