首页 > 编程知识 正文

mips指令集 对比x86(汇编语言inc指令)

时间:2023-05-06 21:05:47 阅读:65777 作者:700

MIPS有三种命令格式。

r型

6

5

5

5

5

6

OPP

rs

rt

rd

沙姆托

函数

功能:寄存器-寄存器ALU操作(算术运算、逻辑运算) )。

I型

6

5

5

16

OPP

rs

rt

马上清点操作

功能:条件分支、跳跃

j型

6

26

OPP

跳转到

功能:跳跃

MIPS的一般指令集

lb/lh/lw:从存储器读取一个字节/半字符/字符的数据到寄存器。

sb/sh/sw:将一个字节/半字符/字符的数据从寄存器存储到存储器中

mov/movz/movn:复制,n为负,z为零。 mov $1,$2; movz $1、$2和$3(如果$ 3为零,则从$2复制到$1)。

trap:基于地址向量转换到管理状态。

eret:从异常返回用户状态。

算术类:

add/addu:把两个定点寄存器的内容相加; u像rd=rs rt那样无符号相加

addi/addiu:在寄存器的内容中添加即时数; u无符号相加。 rd=rs im

减去sub/subu个定点寄存器的内容。 rd=rs - rt

将div/divu:的两个定点寄存器的内容相除。

将mul/mulu:的两个定点寄存器的内容相乘。

如果slt/slti/sltui:的值小于rt,则将rd的值设置为1,否则将rd的值设置为0。 rd=(RSrt )? 1 : 0; rd=(RSim )? 1 : 0

逻辑类:

and/长情蝴蝶:和运算,两个寄存器的内容相和; I是即时数。 rd=rs rt; rd=rs im

or/ori:或运算。 rd=rs | rt; rd=rs | im

xor/xori:异或运算。 rd=rs ^ rt; rd=rs ^ im

nor/nori:采取逆运算。 rd=! (rs | rt

跳班:

j/jr/jal/jalr: j直接PC={ { pc4 } [ 31,28 ],addr,00}; jr使用寄存器跳跃PC=rs; jal $31=PC; PC={ { pc4 } [ 31,28 ],addr,00}

beq/beqz/benz/bne:条件转移eq相等,z为零,ne不同。 beq,PC=(RS==rt )? PC 4 im 2 : PC; bne,PC=(RS!=rt? PC 4 im 2 : PC

加载类:

lui:将16位的即时数嵌入寄存器的前16位中,后16位补零。 rt=im*65536(2^16 ) )

lw: rt=memory[ rs im]

sw: memory[ rs im]=rt

偏移类:

sll/srl:在逻辑上向左移动/向右移动。 rd=rs shamt; rd=rs shamt

32个通用寄存器

MIPS下共有32个通用寄存器; 在程序集中,寄存器标志以$符号开头。 寄存器显示有直接使用寄存器对应编号的方法和$0到$31的方法两种,如$0到$31。 使用对应的寄存器名称。 例如,$t1,$sp。

0($zero ) :的返回值始终为0

1 ($at ) :用作汇编器的临时变量

2-3($v0-$v1 ) :子函数调用的结果

4-7($a0-$a3 ) :子信函

数调用的参数

8-15  ($t0-$t7)    : 暂时变量,子函数使用时不需要保存与恢复

16-23($s0-$s7)  : 子函数寄存器变量。子函数必须保存和恢复使用过的变量在函数返回之前,从而调用函数知道这些寄存器的值没有变化。

24-25($t8-$t9)    : 暂时变量,子函数使用时不需要保存与恢复

26-27($k0-$k1)  : 通常被中断或异常处理程序使用作为保存一些系统参数

28     ($gp): 全局指针。一些运行系统维护这个指针来更方便的存取“static“和”extern”变量。

29     ($sp): 堆栈指针

30     ($s8/$fp): 第9个寄存器变量。子函数可以用来做栈指针

31     ($ra): 子函数的返回地

cp0:协处理器0,MIPS对CPU的控制用cp0完成

ARM汇编指令集_学习笔记(1)

一.什么是ARM汇编? 运行在ARM处理器上的汇编语言就叫ARM汇编. C程序运行在X86平台,底层就是X86汇编:运行在ARM平台,底层就是ARM汇编.ARM汇编与X86汇编有显著区别. X86属于 ...

MIPS 汇编指令学习

MIPS 寄存器 MIPS comes with 32 general purpose registers named $0. . . $31Registers also have symbolic ...

x86汇编指令集大全(带注释)

X86和X87汇编指令大全(有注释) PUSH 压栈.POP 来说是出栈.入栈(push):---------- 一.数据传输指令 ---------------------------------- ...

汇编 | x86汇编指令集大全(带注释)

做mit-6.828的时候遇到了很多汇编知识,但是无奈学校还没学汇编,只能狠心啃啃硬骨头,在网上查到了很多的资料,归档!方便查看 ----------------------------------- ...

ARM汇编指令集

一.跳转指令.跳转指令用于实现程序流程的跳转,在ARM程序中有以下两种方法可以实现程序流程的跳转. Ⅰ.使用专门的跳转指令.Ⅱ.直接向程序计数器PC写入跳转地址值. 通过向程序计数器PC写入跳转地址值 ...

ARM汇编指令集3

常用ARM指令1:数据处理指令 •数据传输指令  mov mvn       mov r1,  r0        @两个寄存器之间数据传递       mov       r1,  #0xff   ...

ARM汇编指令集1

(汇编)指令是CPU机器指令的助记符,经过编译过会得到一串0011组成的机器码,可以由CPU读取执行. (汇编)伪指令本质不是指令(只是和指令一起写在代码中),它是编译器环境提供的,目的是用来指导编译 ...

MIPS汇编程序设计——四则运算计算器

实验目的 运用简单的MIPS实现一个能够整数加减乘除的计算器,同时使自己更加熟悉这些指令吧 MIPS代码 #sample example 'a small calculater’ # data sec ...

PowerPC汇编指令集

PowerPC 体系结构规范(PowerPC Architecture Specification)公布于 1993 年,它是一个 64位规范 ( 也包括 32 位子集 ).差点儿全部常规可用的 Po ...

随机推荐

数据库密码爆破HexorBase

数据库密码爆破HexorBase   数据库服务是服务器上最常见的一类服务.由于数据库保存大量的敏感信息,所以它的安全非常重要.测试数据库服务安全的重要方式,就是检查口令的强壮度.   Kali Li ...

Java性能优化权威指南-读书笔记(三)-JVM性能调优-内存占用

zddbks代.老年代.永久代的概念不多说,这三个空间中任何一个不能满足内存分配请求时,就会发生垃圾收集. zddbks代不满足内存分配请求时,发生Minor GC,老年代.永久代不满足内存分配请求时,发生Full ...

Zipper_DP

Description Given three strings, you are to determine whether the third string can be formed by comb ...

poj City Horizon (线段树+二分离散)

http://poj.org/problem?id=3277 City Horizon Time Limit: 2000MS   Memory Limit: 65536K Total Submissi ...

SAP 使用SQL Trace(ST05)

SAP 使用SQL Trace(ST05) SAP R/3 提供标准ABAP SQL 跟踪工具.使用T-Code:ST05 可以进入追踪设定画面:          在Trace Modes 区域中选 ...

NicEdit - WYSIWYG Content Editor, Inline Rich Text Application

NicEdit - WYSIWYG Content Editor, Inline Rich Text Application By calling the nicEditors.allTextarea ...

Java进阶(三十) 判断字符串编码类型

java 判断字符串编码类型 public static String getEncoding(String str) { String encode = "GB2312"; tr ...

mysql安装问题(一)

mysql安装问题 mysql安装一直未响应 问题: 原因: 解决方案: 登录mysql时提示密码错误 问题: 解决方案: mysql安装问题 Author:母虎忠 日期:April 26, 2019 ...

《Web安全深度剖析》

书名 图片  时间  2018-11月   总结  算是我安全的启蒙书  前五章都是工具  看完差不多算个脚本小子 后面的实战感觉很空洞没什么实战

SpringBoot2.0 redis生成组建和读写配置文件

@Component 生成组建 @ConfigurationProperties(prefix="redis") 读写redis配置文件 application.propertie ...

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。