MIPS 指令集速查

2023-11-11

 

MIPS 指令集(共31条)

助记符

指令格式

示例

示例含义

操作及其解释

Bit #

31..26

25..21

20..16

15..11

10..6

5..0

 

 

 

R-type

op

rs

rt

rd

shamt

func

 

 

 

add

000000

rs

rt

rd

00000

100000

 add $1,$2,$3

 $1=$2+$3

 rd <- rs + rt   ;其中rs=$2,rt=$3, rd=$1

addu

000000

rs

rt

rd

00000

100001

 addu $1,$2,$3

 $1=$2+$3

 rd <- rs + rt   ;其中rs=$2,rt=$3, rd=$1,无符号数

sub

000000

rs

rt

rd

00000

100010

 sub $1,$2,$3

 $1=$2-$3

 rd <- rs - rt   ;其中rs=$2,rt=$3, rd=$1

subu

000000

rs

rt

rd

00000

100011

 subu $1,$2,$3

 $1=$2-$3

 rd <- rs - rt   ;其中rs=$2,rt=$3, rd=$1,无符号数

and

000000

rs

rt

rd

00000

100100

 and $1,$2,$3

 $1=$2 & $3

 rd <- rs & rt   ;其中rs=$2,rt=$3, rd=$1

or

000000

rs

rt

rd

00000

100101

 or $1,$2,$3

 $1=$2 | $3

 rd <- rs | rt   ;其中rs=$2,rt=$3, rd=$1

xor

000000

rs

rt

rd

00000

100110

 xor $1,$2,$3

 $1=$2 ^ $3

 rd <- rs xor rt   ;其中rs=$2,rt=$3, rd=$1(异或)

nor

000000

rs

rt

rd

00000

100111

 nor $1,$2,$3

 $1=~($2 | $3)

 rd <- not(rs | rt)   ;其中rs=$2,rt=$3, rd=$1(或非)

slt

000000

rs

rt

rd

00000

101010

 slt $1,$2,$3

 if($2<$3) 
  $1=1 else
   $1=0

 if (rs < rt) rd=1 else rd=0 ;其中rs=$2,rt=$3, rd=$1

sltu

000000

rs

rt

rd

00000

101011

 sltu $1,$2,$3

 if($2<$3) 
  $1=1 else
   $1=0

 if (rs < rt) rd=1 else rd=0 ;其中rs=$2,rt=$3, rd=$1
  (无符号数)

sll

000000

00000

rt

rd

shamt

000000

 sll $1,$2,10

 $1=$2<<10

 rd <- rt << shamt  ;shamt存放移位的位数,
  也就是指令中的立即数,其中rt=$2, rd=$1

srl

000000

00000

rt

rd

shamt

000010

 srl $1,$2,10

 $1=$2>>10

 rd <- rt >> shamt ;(logical) ,其中rt=$2, rd=$1

sra

000000

00000

rt

rd

shamt

000011

 sra $1,$2,10

 $1=$2>>10

 rd <- rt >> shamt  ;(arithmetic) 注意符号位保留
 其中rt=$2, rd=$1

sllv

000000

rs

rt

rd

00000

000100

 sllv $1,$2,$3

 $1=$2<<$3

 rd <- rt << rs  ;其中rs=$3,rt=$2, rd=$1

srlv

000000

rs

rt

rd

00000

000110

 srlv $1,$2,$3

 $1=$2>>$3

 rd <- rt >> rs  ;(logical)其中rs=$3,rt=$2, rd=$1

srav

000000

rs

rt

rd

00000

000111

 srav $1,$2,$3

 $1=$2>>$3

 rd <- rt >> rs  ;(arithmetic) 注意符号位保留
 其中rs=$3,rt=$2, rd=$1

jr

000000

rs

00000

00000

00000

001000

 jr $31

 goto $31

 PC <- rs

I-type

op

rs

rt

immediate

 

 

 

addi

001000

rs

rt

immediate

 addi $1,$2,100

 $1=$2+100

 rt <- rs + (sign-extend)immediate ;其中rt=$1,rs=$2

addiu

001001

rs

rt

immediate

addiu $1,$2,100

 $1=$2+100

 rt <- rs + (zero-extend)immediate ;其中rt=$1,rs=$2

andi

001100

rs

rt

immediate

 andi $1,$2,10

 $1=$2 & 10

 rt <- rs & (zero-extend)immediate ;其中rt=$1,rs=$2

ori

001101

rs

rt

immediate

 andi $1,$2,10

 $1=$2 | 10

 rt <- rs | (zero-extend)immediate ;其中rt=$1,rs=$2

xori

001110

rs

rt

immediate

 andi $1,$2,10

 $1=$2 ^ 10

 rt <- rs xor (zero-extend)immediate ;其中rt=$1,rs=$2

lui

001111

00000

rt

immediate

 lui $1,100

 $1=100*65536

 rt <- immediate*65536 ;将16位立即数放到目标寄存器高16
         位,目标寄存器的低16位填0

lw

100011

rs

rt

immediate

 lw $1,10($2)

 $1=memory[$2
 +10]

 rt <- memory[rs + (sign-extend)immediate] ;rt=$1,rs=$2

sw

101011

rs

rt

immediate

 sw $1,10($2)

 memory[$2+10]
 =$1

 memory[rs + (sign-extend)immediate] <- rt ;rt=$1,rs=$2

beq

000100

rs

rt

immediate

 beq $1,$2,10

 if($1==$2) 
 goto PC+4+40

 if (rs == rt) PC <- PC+4 + (sign-extend)immediate<<2 

bne

000101

rs

rt

immediate

 bne $1,$2,10

 if($1!=$2)
 goto PC+4+40

 if (rs != rt) PC <- PC+4 + (sign-extend)immediate<<2 

slti

001010

rs

rt

immediate

 slti $1,$2,10

 if($2<10) 
  $1=1 else
   $1=0

 if (rs <(sign-extend)immediate) rt=1 else rt=0 ;
   其中rs=$2,rt=$1

sltiu

001011

rs

rt

immediate

 sltiu $1,$2,10

 if($2<10) 
  $1=1 else
   $1=0

 if (rs <(zero-extend)immediate) rt=1 else rt=0 ;
  其中rs=$2,rt=$1

J-type

op

address

 

 

 

j

000010

address

 j 10000

 goto 10000

 PC <- (PC+4)[31..28],address,0,0   ;address=10000/4

jal

000011

address

 jal 10000

 $31<-PC+4;
 goto 10000

 $31<-PC+4;PC <- (PC+4)[31..28],address,0,0
   ;address=10000/4


 

转载于:https://www.cnblogs.com/mipscpu/archive/2013/03/22/2976316.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MIPS 指令集速查 的相关文章

  • 也说说LDA(Latent Dirichlet Allocation)——理论篇

    LDA是个generative model 它首先从Dirichlet分布Dir 中抽取每个topic对应的参数 然后语料集D中第j篇文档的产生方式如下 1 选择文档长度 N Poission 2 选择文档参数 Dir 3 按照以下方式选取
  • jar包冲突解决方案

    使用背景 在构建工程中 不可避免的引入多方依赖 从jar包冲突产生结果可大致分为两类 1 同一个jar包出现了多个不同的版本 应用选择了错误的版本导致jvm加载不到需要的类或者加载了错误版本的类 2 不同的jar包出现了类路径一致的类 同样
  • Java实现蓝桥杯分金币

    分金币 圆桌旁坐着n个人 每人有一定数量的金币 金币总数能被n整除 每个人可以给他左右相邻的人一些金币 最终使得每个人的金币数目相等 你的任务是求出被转手的金币数量的最小值 比如 n 4 且4个人的金币数量分别为1 2 5 4时 只需转移4
  • Uni-App 获取用户已装应用列表

    获取用户已装应用列表 plus android importClass java util ArrayList plus android importClass android content pm PackageInfo plus and
  • 【老生谈算法】matlab实现连续时间系统的频域分析与仿真——频域分析

    matlab连续时间系统的频域分析与仿真 1 文档下载 本算法已经整理成文档如下 有需要的朋友可以点击进行下载 序号 文档 点击下载 本项目文档 老生谈算法 matlab连续时间系统的频域分析与仿真 doc 2 算法详解 内 容 摘 要 M
  • Java集合、多线程、反射和Spring框架总结,源码解析

    Java集合 多线程 反射和Spring框架总结 源码解析 一 集合 通过不同的数据结构存储以及操作数据的工具 1 1 Collection 1 1 1 ArrayList Vector 1 1 1 1 底层原理 ArrayList和Vec
  • uniapp踩坑系列之二

    今天在用真机在小程序上预览的时候 发现无法预览 一直报错超过微信最大2m 总共也才3个页面 怎么就那么大 经过小程序包分析工具发现 打包以后的vender js文件达到1 7m 最后发现 在main js中引入了一些无用的第三方库 包括ec
  • WEB页面通过ajax进行图片上传实例(附代码)

    背景 公司需要一个签约页面 支持拍照或选择图片上传 应用场景主要在手机端 页面代码 1 2 3 4 5 6
  • pbr公式推导过程,很好

    渲染基础理论的介绍 1 Tags math computer graphics 基础概念 辐射度学 Radiometry 辐射度学是指测量电磁辐射 包括可见光 的一系列技术 它是和观察者无关的 而近似的光度学 photometric 是观察
  • vlc activex调用

    首先是在html页面调用 第一种方式 下面直接给出的是调用函数 function doGo targetURL port var options new Array vlc input repeat 1 aspect ratio 704 4
  • 代码的认爹之路: 面向对象继承

    面向对象 继承 前言 Hello 各位同学朋友大家好啊 今天给大家分享的技术呢 是面向对象三大特征之一的继承 我们今天主要按照以下几个点 展开继承的讲解 目录 继承的介绍 继承的好处和弊端 继承中成员访问特点 成员变量 继承中成员访问特点
  • 苏宁!你还挺得过去吗?(苏宁大幅裁员)

    前两天才写了一篇 作为一个江苏人 我眼中的苏宁 说实话 我内心是有点不太相信 偌大的苏宁会走到今天这步田地 可一件件传闻都慢慢变成了实锤 一 苏宁大裁员 一位多年老友刚跳槽去了苏宁 入职一个月 就面临整个部门裁员 据说要直接裁掉4成研发人员
  • 解决报错: `defaultValue` is invalid for `getFieldDecorator` will set `value`, please use `option...

    报错原因 当我的input 绑定了v decorator的时候 又设置了default value默认值 如下
  • 小波去噪及其matlab实现方法

    小波去噪是小波分析的一个应用 小波分析是一种数学工具 用于将信号分解成不同的频率分量 小波去噪的目的是利用小波变换将噪声从信号中去除 MATLAB Matrix Laboratory 是一种基于数值计算的高级工具 广泛用于工程 科学和金融等
  • C语言-字符串(单个字符)

    一 字符串 单个字符 的定义 1 单个字符的定义 char i x 单个字符的定义 字符串创建后为常量无法修改 2 一维字符串数组的定义 char i xxxx 此方式定义的一维字符串数组必须立刻赋值 char i 4 此方式相当于在存储器
  • 多线程批量执行任务简单实例(CompletableFuture)

    创建线程的四种方式 1 extendds Thred类 start 2 implements Runnable接口 new Thread new MyRun start 3 ListenableFuture CompletableFutur
  • C++11 并发指南五(std condition_variable 条件变量 详解)

    C 11 并发指南五 std condition variable 详解 前面三讲 C 11 并发指南二 std thread 详解 C 11 并发指南三 std mutex 详解 分别介绍了 std thread std mutex st
  • 计算机毕业设计Node.js+Vue基于Web的网络教学系统(程序+源码+LW+部署)

    该项目含有源码 文档 程序 数据库 配套开发软件 软件安装教程 欢迎交流 项目运行 环境配置 Node js Vscode Mysql5 7 HBuilderX Navicat11 Vue Express 项目技术 Express框架 No
  • k8s学习-DaemonSet(模板、创建、更新、回滚、删除等)

    目录 概念 模板 实战 创建 更新 回滚 回滚到上一版本 回滚到指定版本 删除 参考 概念 DaemonSet 守护进程集 在kubectl中缩写为ds 在所有节点或者是匹配的节点上都部署一个Pod 当有节点加入集群时 也会为他们新增一个
  • Unity Cinemachine之第三人称摄像机CinemachineFreeLook属性详解

    演示 CinemachineFreeLook是一个第三人称视角相机插件 功能非常强大 内置了很多属性可以供开发者根据需求进行调整 创建 首先是Cinemachine插件的导入 如果是2018以后的Unity版本 应该 可以直接从Unity顶

随机推荐

  • C++之:struct和class的区别

    一 数据封装和成员访问权限 1 结构体 struct 在struct中 默认的成员访问权限是public 这意味着 在结构体外部 我们可以直接访问其成员变量和成员函数 下面是一个简单的例子 struct Point int x y Poin
  • ggplot2入门

    ggplot2入门 二 3 5 几何对象 geom 和统计变换 stat 几何对象执行着图层的实际渲染 控制着生成的图像类型 各种类型图如下 示例代码如下 head mtcars library ggplot2 p lt ggplot mt
  • 自学Java做的第一个入门项目:ATM银行系统

    import java util ArrayList import java util Random import java util Scanner public class ATMSystem public static void ma
  • Unity中协程和线程区别

    协程和线程的效果类似 都可以实现与主线程异步的效果 但是本质不一样 协程在主线程内 通过软件手段实现函数与主线程的异步效果 Startcoroutine IEnumerator Func IEnumerator是迭代器关键字 修饰一个函数
  • 标准单元库---NLDM/CCS library model

    Timing Model 数字芯片设计 除了全定制设计外 绝大部分都是基于std cell的半定制设计 那么std cell的模型就极为重要 尤其半定制 需要把一个std cell看成block box 只考虑其input output p
  • python发送邮件的乱码问题解决方案

    公司项目中需要通过后台发送邮件 邮件内容包括图片附件 如果通过PHPmailer发送 由于邮件服务器可能存在延迟现象 通过PHPmailer发送邮件 需要等待邮件发送成功后才能返回结果 这在实践中证明 有时发送邮件无法即时返回结果 影响用户
  • Python内容聚合

    Python3 教程 Python 标准库概览 pip 设置代理 设置代理 PyCharm支持的4种Python Interpreter和配置方法 Python中import的as语法 Python安装自己的代码到site packages
  • python 停止线程

    import threading import time import inspect import ctypes def async raise tid exctype raises the exception performs clea
  • MySQL索引命中与失效

    目录 创建表 MySQL执行优化器 索引的命中与失效情况 总结 拓展 讨论MySQL索引命中与失效 我们得先来创建表 创建表 SET NAMES utf8mb4 SET FOREIGN KEY CHECKS 0 Table structur
  • 动态规划记录 [动态更新]

    2021 江西省赛A 题目链接 https ac nowcoder com acm contest 21592 A 题意 给出一个布尔矩阵 每个位置的值非零即一 然后问给定p和q 问从 1 1 n m 的所有路径中至少通过p次0 q次1的路
  • Java技术栈(跳槽,面试必备)

    Java技术栈 来到北京后 感觉氛围有点浮躁 人员流动性很大 很少有人能沉下心学习 所以最近打算把整理过的知识点拿出来给大家分享下 基础扎实了 无论是工作还是跳槽都很有用 跳槽前将知识点整理成word打印出来 然后背其中的知识点 保证你能面
  • 【渗透测试】常见的数据库

    一 网站暴库漏洞 暴库 就是通过一些技术手段或者程序漏洞得到数据库的地址 并将数据非法下载到本地 黑客非常乐意于这种工作 为什么呢 因为黑客在得到网站数据库后 就能得到网站管理账号 对网站进行破坏与管理 黑客也能通过数据库得到网站用户的隐私
  • GitHub 组织是什么?您应该使用一个吗?

    GitHub 作为一个平台 被个人程序员和大型组织所使用 无论您与多少人一起工作 GitHub Organizations 都为管理多个项目的人员提供了一些不错的工具 GitHub 组织是什么 GitHub Organizations 是
  • 解决linux mysql命令 bash: mysql: command not found 的方法

    解决linux mysql命令 bash mysql command not found 的方法 腾讯云开发者社区 腾讯云 tencent com
  • 服务器的安装与维护技巧——数据湾

    机房服务器的安装与维护是机房管理中的主要任务 安装维护好服务器才能保证服务器正常 安全稳定地运行 才能确保数据的安全 服务器生产的厂家 类型 系列不同其具体的安装维护方法 步骤是有差异的 本文主要以戴尔 DELL 系列服务器为例介绍服务器的
  • 数据结构经典算法集锦

    数据结构经典算法集锦 第2章 线性表 KMP算法 获得next数组 void GetNext char t int next MAX int i 1 j 0 next 1 0 设t 0 中为字符串长度 字符保存在t 1 之后 while i
  • 谈一谈c/c++程序的内存布局

    文章目录 内存布局 文本段 初始化数据段 未初始化数据段 bss 堆区 栈区 如何查看一个程序的内存布局 内存布局 一个C 程序的典型内存布局由以下几部分组成 文本段 初始化数据段 未初始化的数据段 bss 堆区 栈区 文本段 文本段也叫代
  • Golang Http Server源码阅读

    这篇文章出现的理由是业务上需要创建一个Web Server 创建web是所有语言出现必须实现的功能之一了 在nginx fastcgi php广为使用的今天 这里我们不妨使用Go来进行web服务器的搭建 前言 使用Go搭建Web服务器的包有
  • 微信小程序-关于新版隐私协议接口wx.onNeedPrivacyAuthorization getPrivacySetting requirePrivacyAuthorize的适配解读以及实现代码

    代码插件已集成 即插即用 五分钟集成进项目 免费下载 欢迎大家交流 微信小程序用户隐私保护协议弹窗插件下载 官方公告地址 关于小程序隐私保护指引设置的公告 微信开放社区 1 首先看一下这个网址 里边包含涉及到的隐私的接口 这些接口都要适配一
  • MIPS 指令集速查

    MIPS 指令集 共31条 助记符 指令格式 示例 示例含义 操作及其解释 Bit 31 26 25 21 20 16 15 11 10 6 5 0 R type op rs rt rd shamt func add 000000 rs r