i基准指令集 mips_MIPS指令集整理
借此机会,再总结一下前几周理论课学习到的一些MIPS指令集:(主要查询自别处)
【空操作】
nop、ssnop(不能和其他指令同时,至少需要一个时钟周期)
【寄存器间的数据传送指令】
move、movf、movt、movn、movz(后四个为条件传递指令)
【常数加载指令】
dla、la(获取某些标号地址或程序中变量地址的宏指令);
dli、li(加载常数立即数指令);
lui(加载高位立即数指令)
【算术/逻辑操作指令】
addu、addiu、daddu,daddiu(加法指令);
dsub、sub(会触发溢出陷入的减法操作);
dsubu、subu(普通减法指令);
abs、dabs(求绝对值操作);
dneg、neg、dnegu、negu(一元非操作);
and、andi、or、ori、xor、xori、nor、not(按位逻辑指令);
drol、dror、rol、ror(循环左移和右移);
dsll、dsll32、dsllv(64位左移,低位补零);
dsra、dsra32、dsrav(64位算术右移指令);
dsrl、dsrl32、dsrlv(64位逻辑右移指令);
sll、sllv(32位左移指令);sra、srav(32位算术右移指令);
srl、srlv(32位逻辑右移指令);
slt、slti、sltiu、sltu(硬件指令,条件满足就写入1,否则写0);
seq、sge、sgeu、sgt、sgtu、sle、slue、sne(根据更复杂的条件设置目的寄存器的宏指令)
【整数乘法、除法以及求余指令】
ddiv、ddivu、div、divu(整数除法的3操作数宏指令分别处理64位或32位有符号或无符号数);
divo、divou(明确该指令是带有溢出检查的除法指令);
dmul、mul(3操作数64位或32位乘法指令,没有溢出检查);
mulo、mulou、dmulo、dumlou(乘法宏指令,如果结果不能存入一个通用寄存器,发生溢出,触发异常);
dmult、dmultu、mult、multu(执行有符号/无符号32/64位乘法的机器指令);
drem、dremu、rem、remu(求余操作);
mfhi、mflo、mthi、mtlo(用于访问整数乘除单元的结果寄存器hi和lo)
【存取指令(内存访问指令】
lb、lbu(加载一个字节,高位可以补零,或进行符号扩展,以补充整个寄存器的长度);
ld(加载一个双字);
ldl、ldr、lwl、lwr、sdl、sdr、swl、swr(向左、向右加载、存储一个字、双字);
lh、lhu(加载一个半字,高位可以补零,或进行符号扩展,以补充整个寄存器的长度);
lw、lwu(加载一个字);
pref、prefx(把数据预取到缓冲);
sb、sd、sh、sw(存储字节、双字、半字、字);
uld、ulh、ulhu、ulw、usd、usw、ush(地址非对齐的数据存取宏指令);
l.d、l.s、s.d、s.s(存取双精度和单精度浮点数的指令,地址必须对齐);
ldxcl、lwxcl、sdxcl、swxcl(采用基址寄存器+偏移寄存器的寻址方式存取指令);
【跳转、分支和子程序调用指令】
j(无条件跳转到一个绝对地址,访问256M的代码空间);
jal、jalr(直接或间接子程序调用,这种跳转不仅能跳转到指定地址,而且可以顺便把返回地址(当前指令地址+8)放到ra寄存器中);
b(基于当前指令地址的无条件相对跳转);
bal(基于当前地址的函数调用指令);
bc0f、bc0f1、bc0t、bc0t1、bc2f、bc2f1、bc2t、bc2t1(根据协处理器0和2的条件标志进行跳转);
bc1f、bc1f1、bc1t、bc1t1(根据浮点条件标志位进行跳转);
beq、beq1、beqz、beqz1、bge、bge1、bgeu、bgeu1、bgez、bgez1、bgt、bgt1、bgtu、bgtu1、bgtz、bgtz1、ble、ble1、bleu、bleu1、blez、blez1、blt、blt1、bltu、bltu1、bltz、bltz1、bne、bnel、bnez、bnezl(双操作数和单操作数的比较跳转指令);
bgeza1、bgeza11、bltza1、bltza11(如果需要 ,这些指令是用于有条件函数调用的原始机器指令);
【断点及陷阱指令】
break(产生一个“断点”类型的异常);
sdbbp(产生EJTAG异常的断点指令);
syscall(产生一个约定用于系统调用的异常类型);
teq、teqi、tge、tgei、tgeiu、tgeu、tlt、tlti、tltiu、tltu、tne、tnei(条件异常指令,对一个或两个操作数进行条件测试);
【协处理器0的功能】
cfc0、ctc0(把数据拷进和拷出协处理器0的控制寄存器);
mfc0、mtc0、dmfc0、dmtc0(在通用寄存器和协处理器0寄存器之间交换数据);
cfc2、ctc2、dmfc2、dmtc2、mfc2、mtc2(协处理器2的指令);
i基准指令集 mips_MIPS指令集整理相关推荐
- i基准指令集 mips_mips addiu
27bdfff8 addiu $sp,$sp,-8 /* Save the re... (sign-extend)immediate ; $1=$2+100 00 其中 rt=$1,rs=$2 001 ...
- i基准指令集 mips_MIPS处理器 MIPS指令集(上)
引言 MIPS指令集有固定的MIPS指令格式和MIPS指令类型,还有固定的MIPS寄存器,它们是了解MIPS指令必不可少的前提. 其中,寄存器是MIPS处理器高效的临时存储工具,其存取速度极快,共有固 ...
- 和x86同时代的计算机语言指令集,x86指令集同频性能提升
x86近5000条指令,迄今为止最复杂的指令集.这里不研究CISC & RISC,也不考虑process制程变化,主要是看最近几代IA架构对于同频率下性能的提升. x86指令集nasm文档 h ...
- java指令集_javap 指令集
栈和局部变量操作 将常量压入栈的指令 aconst_null 将null对象引用压入栈 iconst_m1 将int类型常量-1压入栈 iconst_0 将int类型常量0压入栈 iconst_1 将 ...
- Cortex、ARMv8、arm架构、ARM指令集、soc?Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是处理器(内核)后者是指令集的架构(架构)
架构组成元素的指令集状态或者语法thumb指令集与arm指令集的区别例如thumb指令集是什么_thumb指令集与arm指令集的区别以及thumb-2的关系在下一文中介绍,本文暂时不讨论 有粉丝问我到 ...
- 到底什么是Cortex、ARMv8、arm架构、ARM指令集、soc?一文帮你梳理基础概念【科普】
前言 有粉丝问我到底什么是ARM,搞不清楚Cortex.arm内核.arm架构.ARM指令集.soc这些概念都是什么关系,下面一口君给大家整理一下关于ARM相关的一些概念. 1.ARM既可以认为是一个 ...
- 深入探讨用位掩码代替分支(7):MMX指令集速度测试
前面我们测试了高级语言做饱和处理的性能.其实,对于这样的大批量数据处理,使用SIMD(Single Instruction Multiple Data,单指令多数据流)技术能极大的提高性能.MMX指令 ...
- ARM指令集、Thumb指令集、Thumb-2指令集
Thumb‐2是一个突破性的指令集.它强大,它易用,它轻佻,它高效.Thumb‐2是16位Thumb指令集的一个超集,在Thumb‐2中,16位指令首次与32位指令并存,结果在Thumb状态下可以做的 ...
- [C] 跨平台使用Intrinsic函数范例3——使用MMX、SSE2指令集 处理 32位整数数组求和...
作者:zyl910. 本文面对对SSE等SIMD指令集有一定基础的读者,以32位整数数组求和为例演示了如何跨平台使用MMX.SSE2指令集.支持vc.gcc编译器,在Windows.Linux.Mac ...
最新文章
- 蓝懿教育九月二十七日记录
- 从电影死亡笔记看商业智能在治安领域的应用
- Metasploit中aggregator插件无法使用
- Web会话安全分析工具ProxyStrike
- linux shell 逻辑判断 [] [[]] -n -z 用法区别
- js div asp.net 实现漂浮图片,可以代码控制。
- 2018年下半年网络公式考试案例分析真题
- 项目实施管理之系统演示
- bootstrap学习笔记(5)
- arm汇编语言调用C函数之参数传递
- WebAPI Delete方法报错405 Method Not Allowed
- What is the !! (not not) operator in JavaScript?
- java异常继承哪个类_java异常继承何类,运行时异常与一般异常的区别
- 非模式对话框CreateDialog() 与 模式对话框 DialogBoxParam()和DialogBox()
- intelGMA950开启3d特效
- Android4.1.0实战教程---自动阅读小说
- 对接京东获取任务工单接口jingdong.homefw.task.search,附接口字段详细说明,数据库设计,Java实现
- B.FRIENDit壁虎忍者GC03电竞椅,坐的舒服才能心无旁骛!
- weblogic修改控制台密码
- 学习Python,主要应用场景有哪些?
热门文章
- 计算cpu利用率和内存利用率
- PHP 从LDAP服务器获取用户信息
- vue项目如何让局域网ip访问配置设置
- 我的世界服务器物品使用权限,我的世界服务器怎么ban物品使用权限
- Read Aloud: 文本语音朗读助理
- 用进程打开记事本(notepad),停留5秒后结束记事本进程
- 关于QQ真人秀免费用的技巧
- java swing substance_java swing皮肤使用(substance)
- 关闭计算机后为什么重新启动,为什么计算机关机后自动重新启动? Windows 10关闭重新启动的原因及解决方法...
- Java之函数式接口(FunctionalInterface)