[zt]系统中常用MIPS指令
指令 |
功能 |
应用实例 |
LB |
从存储器中读取一个字节的数据到寄存器中 |
LB R1, 0(R2) |
LH |
从存储器中读取半个字的数据到寄存器中 |
LH R1, 0(R2) |
LW |
从存储器中读取一个字的数据到寄存器中 |
LW R1, 0(R2) |
LD |
从存储器中读取双字的数据到寄存器中 |
LD R1, 0(R2) |
L.S |
从存储器中读取单精度浮点数到寄存器中 |
L.S R1, 0(R2) |
L.D |
从存储器中读取双精度浮点数到寄存器中 |
L.D R1, 0(R2) |
LBU |
功能与LB指令相同,但读出的是不带符号的数据 |
LBU R1, 0(R2) |
LHU |
功能与LH指令相同,但读出的是不带符号的数据 |
LHU R1, 0(R2) |
LWU |
功能与LW指令相同,但读出的是不带符号的数据 |
LWU R1, 0(R2) |
SB |
把一个字节的数据从寄存器存储到存储器中 |
SB R1, 0(R2) |
SH |
把半个字节的数据从寄存器存储到存储器中 |
SH R1,0(R2) |
SW |
把一个字的数据从寄存器存储到存储器中 |
SW R1, 0(R2) |
SD |
把两个字节的数据从寄存器存储到存储器中 |
SD R1, 0(R2) |
S.S |
把单精度浮点数从寄存器存储到存储器中 |
S.S R1, 0(R2) |
S.D |
把双精度数据从存储器存储到存储器中 |
S.D R1, 0(R2) |
DADD |
把两个定点寄存器的内容相加,也就是定点加 |
DADD R1,R2,R3 |
DADDI |
把一个寄存器的内容加上一个立即数 |
DADDI R1,R2,#3 |
DADDU |
不带符号的加 |
DADDU R1,R2,R3 |
DADDIU |
把一个寄存器的内容加上一个无符号的立即数 |
DADDIU R1,R2,#3 |
ADD.S |
把一个单精度浮点数加上一个双精度浮点数,结果是单精度浮点数 |
ADD.S F0,F1,F2 |
ADD.D |
把一个双精度浮点数加上一个单精度浮点数,结果是双精度浮点数 |
ADD.D F0,F1,F2 |
ADD.PS |
两个单精度浮点数相加,结果是单精度浮点数 |
ADD.PS F0,F1,F2 |
DSUB |
两个寄存器的内容相减,也就是定点数的减 |
DSUB R1,R2,R3 |
DSUBU |
不带符号的减 |
DSUBU R1,R2,R3 |
SUB.S |
一个双精度浮点数减去一个单精度浮点数,结果为单精度 |
SUB.S F1,F2,F3 |
SUB.D |
一个双精度浮点数减去一个单精度浮点数,结果为双精度浮点数 |
SUB.D F1,F2,F3 |
SUB.PS |
两个单精度浮点数相减 |
SUB.SP F1,F2,F3 |
DDIV |
两个定点寄存器的内容相除,也就是定点除 |
DDIV R1,R2,R3 |
DDIVU |
不带符号的除法运算 |
DDIVU R1,R2,R3 |
DIV.S |
一个双精度浮点数除以一个单精度浮点数,结果为单精度浮点数 |
DIV.S F1,F2,F3 |
DIV.D |
一个双精度浮点数除以一个单精度浮点数,结果为双精度浮点数 |
DIV.D F1,F2,F3 |
DIV.PS |
两个单精度浮点数相除,结果为单精度 |
DIV.PS F1,F2,F3 |
DMUL |
两个定点寄存器的内容相乘,也就是定点乘 |
DMUL R1,R2,R3 |
DMULU |
不带符号的乘法运算 |
DMULU R1,R2,R3 |
MUL.S |
一个双精度浮点数乘以一个单精度浮点数,结果为单精度浮点数 |
DMUL.S F1,F2,F3 |
MUL.D |
一个双精度浮点数乘以一个单精度浮点数,结果为双精度浮点数 |
DMUL.D F1,F2,F3 |
MUL.PS |
两个单精度浮点数相乘,结果为单精度浮点数 |
DMUL.PS F1,F2,F3 |
AND |
与运算,两个寄存器中的内容相与 |
ANDR1,R2,R3 |
ANDI |
一个寄存器中的内容与一个立即数相与 |
ANDIR1,R2,#3 |
OR |
或运算,两个寄存器中的内容相或 |
ORR1,R2,R3 |
ORI |
一个寄存器中的内容与一个立即数相或 |
ORIR1,R2,#3 |
XOR |
异或运算,两个寄存器中的内容相异或 |
XORR1,R2,R3 |
XORI |
一个寄存器中的内容与一个立即数异或 |
XORIR1,R2,#3 |
BEQZ |
条件转移指令,当寄存器中内容为0时转移发生 |
BEQZ R1,0 |
BENZ |
条件转移指令,当寄存器中内容不为0时转移发生 |
BNEZ R1,0 |
BEQ |
条件转移指令,当两个寄存器内容相等时转移发生 |
BEQ R1,R2 |
BNE |
条件转移指令,当两个寄存器中内容不等时转移发生 |
BNE R1,R2 |
J |
直接跳转指令,跳转的地址在指令中 |
J name |
JR |
使用寄存器的跳转指令,跳转地址在寄存器中 |
JR R1 |
JAL |
直接跳转指令,并带有链接功能,指令的跳转地址在指令中,跳转发生时要把返回地址存放到R31这个寄存器中 |
JAL R1 name |
JALR |
使用寄存器的跳转指令,并且带有链接功能,指令的跳转地址在寄存器中,跳转发生时指令的放回地址放在R31这个寄存器中 |
JALR R1 |
MOV.S |
把一个单精度浮点数从一个浮点寄存器复制到另一个浮点寄存器 |
MOV.S F0,F1 |
MOV.D |
把一个双精度浮点数从一个浮点寄存器复制到另一个浮点寄存器 |
MOV.D F0,F1 |
MFC0 |
把一个数据从通用寄存器复制到特殊寄存器 |
MFC0 R1,R2 |
MTC0 |
把一个数据从特殊寄存器复制到通用寄存器 |
MTC0 R1,R2 |
MFC1 |
把一个数据从定点寄存器复制到浮点寄存器 |
MFC1 R1,F1 |
MTC1 |
把一个数据从浮点寄存器复制到定点寄存器 |
MTC1 R1,F1 |
LUI |
把一个16位的立即数填入到寄存器的高16位,低16位补零 |
LUI R1,#42 |
DSLL |
双字逻辑左移 |
DSLL R1,R2,#2 |
DSRL |
双字逻辑右移 |
DSRL R1,R2,#2 |
DSRA |
双字算术右移 |
DSRA R1,R2,#2 |
DSLLV |
可变的双字逻辑左移 |
DSLLV R1,R2,#2 |
DSRLV |
可变的双字罗伊右移 |
DSRLV R1,R2,#2 |
DSRAV |
可变的双字算术右移 |
DSRAV R1,R2,#2 |
SLT |
如果R2的值小于R3,那么设置R1的值为1,否则设置R1的值为0 |
SLT R1,R2,R3 |
SLTI |
如果寄存器R2的值小于立即数,那么设置R1的值为1,否则设置寄存器R1的值为0 |
SLTI R1,R2,#23 |
SLTU |
功能与SLT一致,但是带符号的 |
SLTU R1,R2,R3 |
SLTUI |
功能与SLT一致,但不带符号 |
SLTUI R1,R2,R3 |
MOVN |
如果第三个寄存器的内容为负,那么复制一个寄存器的内容到另外一个寄存器 |
MOVN R1,R2,R3 |
MOVZ |
如果第三个寄存器的内容为0,那么复制一个寄存器的内容到另外一个寄存器 |
MOVZ R1,R2,R3 |
TRAP |
根据地址向量转入管态 |
|
ERET |
从异常中返回到用户态 |
|
MADD.S |
一个双精度浮点数与单精度浮点数相乘加,结果为单精度 |
|
MADD.D |
一个双精度浮点数与单精度浮点数相乘加,结果为双精度 |
|
MADD.PS |
两个单精度浮点数相乘加,结果为单精度 |
|
[zt]系统中常用MIPS指令的更多相关文章
- Mac系统中常用快捷键
刚刚接触IOS系统,收集了一些快捷键和系统指令,以便能更好的学习IOS开发. 一.文件操作 复制:Command + C 粘贴:Command + V 回退:Command + ...
- Linux系统中常用操作命令
常用指令 ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all)mkdi ...
- linux运维中常用的指令
一.终端中常用的快捷键 man界面中的快捷键: ?keyword 向上搜索关键词keyword,n向下搜索,N继续向上搜索 /keyword 向下搜索关键词keyw ...
- [原创]Android系统中常用JAVA类源码浅析之HashMap
由于是浅析,所以我只分析常用的接口,注意是Android系统中的JAVA类,可能和JDK的源码有区别. 首先从构造函数开始, /** * Min capacity (other than zero) ...
- 工作中常用Git指令操作
常用Git指令总结 前阵子有几天好不顺,可谓是喝水都呛着,更何况被Git给呛着了,还不轻,哈哈.所以打算总结一下自己在工作使用到Git相关的东西以及和大家探讨使用GIt的心得体会.于是,关于Git的的 ...
- Unix系统中常用的信号含义
http://blog.csdn.net/u012349696/article/details/50687462 编号为1 ~ 31的信号为传统UNIX支持的信号,是不可靠信号(非实时的),编号为32 ...
- 【转】CentOS系统中常用查看日志命令
来源:http://www.centoscn.com/CentOS/help/2014/0310/2540.html Linux IDE RedHat 防火墙活动 .cat tail -f 日 志 文 ...
- Linux命令--系统中常用的查看命令
摘自 http://my.oschina.net/syyzhan/blog/277536 1.查看日志文件 使用命令:cat 或者 tail -f(默认查看文件尾部10行) 相关日志文件: /var/ ...
- CentOS系统中常用查看日志命令
cat tail -f 日 志 文 件 说 明 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安 ...
随机推荐
- 上四条只是我目前总结菜鸟们在学习FPGA时所最容易跑偏的地
长期以来很多新入群的菜鸟们总 是在重复的问一些非常简单但是又让新手困惑不解的问题.作为管理员经常要给这些菜鸟们普及基础知识,但是非常不幸的是很多菜鸟怀着一种浮躁的心态来学习 FPGA,总是急于求成. ...
- hdu 4597 + uva 10891(一类区间dp)
题目链接:http://vjudge.net/problem/viewProblem.action?id=19461 思路:一类经典的博弈类区间dp,我们令dp[l][r]表示玩家A从区间[l, r] ...
- 如何把Eclipse工程导入到Android Studio
1 在Eclipse中新建android项目androiddemo.里面只有一个MainActivity,主要是使用fastjson将一个Person对象转化成字符串. 2 在项目上点击右键-&g ...
- 廖雪峰js教程笔记 1
遍历Array可以采用下标循环,遍历Map和Set就无法使用下标.为了统一集合类型,ES6标准引入了新的iterable类型,Array.Map和Set都属于iterable类型. 具有iterabl ...
- 深入剖析Java中的装箱和拆箱
深入剖析Java中的装箱和拆箱 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题.本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱 ...
- Android 编程下 DP、SP 以及屏幕像素密度
有时需为视图属性指定大小尺寸值(通常以像素为单位,但有时也用点.毫米或英寸).最常见的属性有: 文字大小(Text Size),指设备上显示的文字像素高度: 边距(Margin),指定视图组件间的距离 ...
- 【HTML+CSS】七小时快速入门~~~~~~~
由于网络化的原因,学习很方便,但是也由于太方便了,学习资料很多会给刚想要入门却没有什么自制力的初学者造成困难,我自己来说学html和css先看了一本书,后来又辗转在慕课网.w3cschool等学习网站 ...
- kafka基本原理学习
下载安装地址:http://kafka.apache.org/downloads.html 原文链接:http://www.jasongj.com/2015/01/02/Kafka深度解析 Kafk ...
- ubuntu 下python版本切换
1. 安装ubuuntu 14.04之后python的默认版本为2.7.6但是我想使用python的版本为3.4 可以打开终端:输入:alias python = python3
- delphi中VirtualStringTree树使用方法之终结篇!
VirtualStringTree 的用法详解:作者:张志宝go淘宝 例子:创建了一个树名为VirtualStringTree1,第一列显示数据库字段ID的值,标题为编号:第二列显示字段Name的值, ...