汇编语言MIPS指令分类及寻址模式原理概念
目录
- 一、相关概念
- 二、MIPS操作数之32个寄存器
- 三、MIPS汇编语言指令类型及寻址方式
- 1. R型指令
- 2. I型指令
- 3. J型指令
- 四、MIPS类型及寻址方式分析
- 1. MIPS字段命名
- 2. 指令类型
- 3. MIPS寻址方式
一、相关概念
指令集:一个给定的计算机体系结构所包含的指令集合。
存储程序概念:多种类型的指令和数据均以数字形式存储于存储器的概念,存储程序型计算机即缘于此。
二、MIPS操作数之32个寄存器
寄存器名字 | 寄存器编号 | 寄存器功能 |
---|---|---|
$zero | $0 | 恒等于零 |
$at | $1 | 被汇编器保留,用于处理大的常数 |
$v0 – $v1 | $2-$3 | 存放函数返回值 |
$a0 – $a3 | $4-$7 | 传递函数参数 |
$t0 – $t7 | $8-$15 | 存放临时变量 |
$s0 – $s7 | $16-$23 | 存放需要保存的临时值 |
$t8 – $t9 | $24-$25 | 额外的存放临时变量 |
$k0 – $k1 | $26-$27 | 用于操作系统内核 |
$gp | $28 | 指向全局变量的指针 |
$sp | $29 | 指向栈顶的指针 |
$fp | $30 | 指向栈帧的指针 |
$ra | $31 | 返回地址,用于函数调用 |
三、MIPS汇编语言指令类型及寻址方式
1. R型指令
2. I型指令
3. J型指令
四、MIPS类型及寻址方式分析
1. MIPS字段命名
op(6位) | rs(5位) | rt(5位) | rd(5位) | shamt(5位) | funct(6位) |
---|
op
:指令的基本操作,成为操作码
rs
:第一源操作数寄存器
rt
:第二源操作数寄存器
rd
:存放操作结果的目的寄存器
shamt
:位移量
funct
:功能码
2. 指令类型
R型【op为0】
op(6位) | rs(5位) | rt(5位) | rd(5位) | shamt(5位) | funct(6位) |
---|
I型
op(6位) | rs(5位) | rt(5位) | immediate(16位) |
---|
J型
op(6位) | immediate(26位) |
---|
3. MIPS寻址方式
《计算机组成与设计》第五版翻译版 ↩︎
以上就是汇编语言MIPS指令分类及寻址模式原理概念的详细内容,更多关于MIPS指令分类及寻址模式的资料请关注我们其它相关文章!
相关推荐
-
汇编语言入门汇编指令及寄存器详解教程
目录 前言 什么是汇编语言 汇编语言产生的原因 汇编与二进制的关系 寄存器 寄存器作用 存取速度比较 寄存器分类 常用寄存器用途 寄存器EAX.AX.AH.AL的关系 汇编语言指令 数据传送指令 算术运算指令 逻辑运算指令 循环控制指令 转移指令 linux 和 windows 下汇编的区别 总结 前言 我们大都是被高级语言惯坏了的一代,源源不断的新特性正在逐步添加到各类高级语言之中,汇编作为最接近机器指令的低级语言,已经很少被直接拿来写程序了,不过我还真的遇到了一个,那是之前的一个同事,因为在
-
常用的汇编指令与技巧(收藏)
1.数据传送指令:mov move r1,r2 /*r1=r2*/ move r1,#4096 /*r1=4096*/ 2.大范围的地址读取指令:ldr ldr r1,=0x123456789 /*r1=0x123456789*/ ldr r1,=label /*获取绝对地址,即label的地址*/ label: -- 3.内存访问指令(当ldr后面没有=号时为内存读取指令) 读取指令:ldr ldr r1 ,[r2,#4] /*将内存地址为r2+4的数据读取到r1中,相当于C语言中的*操作*/
-
详解汇编语言各种指令的解释与用法
[数据传输指令] 一.通用数据传送指令 1.传送指令MOV(move) 指令的汇编格式:MOV DST,SRC 指令的基本功能:(DST)<-(SRC) 将原操作数(字节或字)传送到目的地址.指令支持的寻址方式:目的操作数和源操作数不能同时用存储器寻址方式,这个限制适用于所有指令.指令的执行对标志位的影响:不影响标志位.指令的特殊要求:目的操作数DST和源操作数SRC不允许同时为段寄存器:目的操作数DST不能是CS,也不能用立即数方式. 2.进栈指令 PUSH(push onto the sta
-
汇编语言指令集之串处理指令讲解
串处理指令 串处理指令分类情况如下: 指令类型 MOVS move string 传传送 CMPS compare string 串比较 SCAS scan string 串扫描 LODS load from string 从串取 STOS store in to string 存入串 INS input from port to string 串输入 OUTS output string to port 串输出 REP repeat 重复 REPE/REPZ repeat while equa
-
汇编语言MIPS指令分类及寻址模式原理概念
目录 一.相关概念 二.MIPS操作数之32个寄存器 三.MIPS汇编语言指令类型及寻址方式 1. R型指令 2. I型指令 3. J型指令 四.MIPS类型及寻址方式分析 1. MIPS字段命名 2. 指令类型 3. MIPS寻址方式 一.相关概念 指令集:一个给定的计算机体系结构所包含的指令集合. 存储程序概念:多种类型的指令和数据均以数字形式存储于存储器的概念,存储程序型计算机即缘于此. 二.MIPS操作数之32个寄存器 寄存器名字 寄存器编号 寄存器功能 $zero $0 恒等于零 $a
-
Python设计模式之享元模式原理与用法实例分析
本文实例讲述了Python设计模式之享元模式原理与用法.分享给大家供大家参考,具体如下: 享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度的对象. 下面是一个享元模式的demo: #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'Andy' """ 大话设计模式 设计模式--享元模式 享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度的对象 对一个
-
Python设计模式之桥接模式原理与用法实例分析
本文实例讲述了Python设计模式之桥接模式原理与用法.分享给大家供大家参考,具体如下: 桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化. 下面是一个桥接模式的demo: #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'Andy' """ 大话设计模式 设计模式--桥接模式 桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独
-
汇编语言lea指令使用方法解析
这篇文章主要介绍了汇编语言lea指令使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 lea指令变种(按大小分类): leaw #2个字节 leal #4个字节 leaq #8个字节 lea的用法: leaq a(b, c, d), %rax 首先lea指令是mov指令的变种,据说,lea指令是x86体系结构中,是一条最古老但是从某个方面来讲又是最神奇的指令. 表面上看,它做的事情非常简单,根据括号里的源操作数来计算地址,然后把地址加
-
JavaScript代理模式原理与用法实例详解
本文实例讲述了JavaScript代理模式原理与用法.分享给大家供大家参考,具体如下: 代理模式的定义,代理是一个对象(proxy)用它来控制目标对象的访问.为此他要是先与目标对象相同的接口,但是他不同于装饰者模式,它对目标对象不进行任何修改,它的目的在于延缓"复杂"对象的初始化时间.这样可以在用到这个目标对象的时候再初始化他(对于单例来讲更是重要). 代理模式有两种分类: (1)普通代理 (2)惰性代理 具体看下面的例子 第一,普通代理模式 步骤一,接口检验文件的引用 //定义一个静
-
汇编语言MUL指令无符号数乘法的使用
32 位模式下,MUL(无符号数乘法)指令有三种类型: 第一种执行 8 位操作数与 AL 寄存器的乘法: 第二种执行 16 位操作数与 AX 寄存器的乘法: 第三种执行 32 位操作数与 EAX 寄存器的乘法. 乘数和被乘数的大小必须保持一致,乘积的大小则是它们的一倍.这三种类型都可以使用寄存器和内存操作数,但不能使用立即数: MUL reg/mem8 MUL reg/meml6 MUL reg/mem32 MUL 指令中的单操作数是乘数.下表按照乘数的大小,列出了默认的被乘数和乘积.由于目的操
-
JS严格模式原理与用法实例分析
本文实例讲述了JS严格模式原理与用法.分享给大家供大家参考,具体如下: 使用 "use strict" 指令 "use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增. 它不是一条语句,但是是一个字面量表达式,在 JavaScript 旧版本中会被忽略. 支持严格模式的浏览器: Internet Explorer 10 +. Firefox 4+ Chrome 13+. Safari 5.1+. Opera 12+.
-
Javascript 匿名函数及其代码模式原理
关于什么是匿名函数,及它带来的优势在本文就不深究了,先抛出一个常用的匿名函数: (function(){alert('yo')})() 很多同学知道怎么用这种匿名函数,却或许并不明白为什么这样写就能够调用匿名函数.也许知道后面的圆括号是执行前面的函数,而并不清楚前面的圆括号具有何种含义!本文将带你了解匿名函数的代码模式原理. OK,先来看看更多匿名函数调用模式: 复制代码 代码如下: (function(){alert(1);}()) (function(){alert(2);})() void
-
Angular指令之restict匹配模式的详解
Angular指令之restict匹配模式的详解 <body data-ng-app="myapp"> <runn2></runn2> <div data-runn2></div> <div class="runn2"></div> <!-- directive: runn2 --> <script> var app=angular.module("
随机推荐
- 史上最简单的MySQL数据备份与还原教程(下)(三十七)
- JS实现一个列表中包含上移下移删除等功能
- php smarty截取中文字符乱码问题?gb2312/utf-8
- php数组函数序列之array_search()- 按元素值返回键名
- 在Django的模板中使用认证数据的方法
- JavaScript中的原型prototype属性使用详解
- 全面了解MySql中的事务
- Android内存泄漏排查利器LeakCanary
- 解决php-fpm.service not found问题的办法
- javascript排序函数实现数字排序
- 简单有用的SQL脚本 (行列互转,查询一个表内相同纪录等)
- MySQL中基本的用户和权限管理方法小结
- Last_Errno: 1062,Last_Error: Error Duplicate entry
- linux设置服务开机自启动的三种方式
- jquery计算出left和top,让一个div水平垂直居中的简单实例
- JavaScript实现的字符串replaceAll函数代码分享
- C语言实现顺序表基本操作汇总
- Android调用google地图生成路线图实现代码
- 在AndroidManifest.xml中uses-sdk内属性意思
- 微信跳一跳辅助python代码实现