【计算机组成原理】指令系统

🎄欢迎来到@边境矢梦°的csdn博文🎄
🎄本文主要梳理计算机组成原理中 指令系统的知识点和值得注意的地方 🎄
🌈我是边境矢梦°,一个正在为秋招和算法竞赛做准备的学生🌈
🎆喜欢的朋友可以关注一下🫰🫰🫰,下次更新不迷路🎆

目录

🍁指令系统的概念及指令格式

🌳寻址方式及指令寻址方式

🌻操作数寻址方式

🌸指令格式设计

🏵️MIPS指令概述

🪴MIPS指令详解


🍁指令系统的概念及指令格式

  • 指令概念
  1. 指令
    1. 计算机能直接识别、执行的操作命令(机器指令);
    2. 冯诺依曼结构计算机“程序控制”原理实现的载体.
  2. 指令系统(指令集)
    1. 一台计算机中所有机器指令的集合
    2. 系列机:同一公司不同时期生产,基本系统结构和指令系统相同的计算机。如IBM,PDP-11,VAX-11,Intel-x86
    3. 兼容机:不同公司生产,基本系统结构和指令系统相同的计算机如IBM兼容机
  3. 指令字长
    1. 指令中包含的二进制位数
    2. 与机器字长相比: 单字长、双字长、半字长等长度指令
    3. 多字长指令
      1. 解决寻址较大存储空间的问题
      2. 取指多次访内,影响速度,占用空间大
    4. 等长指令 : 指令字长度固定 (简化)
    5. 变长指令 : 指令字长度根据需要可变 (复杂)
  • 指令的分类
    • 根据计算机层次结构分类
    • 根据指令中地址码字段的个数分类
    • 根据指令中操作数的物理位置分类
    • 根据指令的功能分类
  • 指令格式
    • 用二进制代码表示指令的结构形式
  • 二说指令系统

 

🌳寻址方式及指令寻址方式

  1.  指令的顺序寻址
    1. 程序的指令序列在主存顺序存放。执行时从第一条指令开始(!),逐条取出并逐条执行,这种程序的顺序执行过程,称为顺序寻址方式 .
    2. CPU中设置程序计数器(PC)对指的顺序号进行计数。PC开始时存放程序的首地址,每执行一条指令,PC 加”1”,指出下条指令的地址直到程序结束。
  2. 指令的跳跃寻址

🌻操作数寻址方式

  1. 立即数寻址
  2. 寄存器寻址
  3. 直接寻址
  4. 间接寻址
  5. 寄存器间接寻址
  6. 相对寻址
  7. 基址寻址
  8. 变址寻址
  9. 总结

🌸指令格式设计

  1. 指令格式设计的主要内容
  2. 举例

🏵️MIPS指令概述

MIPS指令是一种精简指令集计算机(RISC)指令集,属于80年代初期由斯坦福大学Hennessy教授领导的研究小组研制成功的。MIPS指令集有多个版本,如MIPS I、MIPS II、MIPS III、MIPS IV、MIPS V、MIPS32和MIPS64。

MIPS指令集有以下特点:

  1. 简单的Load/Store结构:MIPS指令集采用简单的Load/Store结构,即指令主要涉及加载数据到寄存器(Load)和从寄存器中存储数据(Store)。这种结构简化了指令集的设计,并使得编译器更容易生成高效的代码。
  2. 易于流水线CPU设计:MIPS指令集的另一个特点是易于流水线CPU设计。流水线设计是一种提高CPU性能的技术,它将指令执行过程划分为多个阶段,每个阶段由不同的硬件单元处理。这种设计可以使得CPU在执行指令时具有更高的吞吐量和更快的执行速度。
  3. 易于编译器开发:MIPS指令集的设计使得编译器更容易生成高效的代码。由于MIPS指令集结构简单,编译器可以更轻松地分析代码并生成相应的指令序列。这有助于提高编译器的性能和生成代码的质量。
  4. MIPS指令的寻址方式非常简单:MIPS指令的寻址方式相对简单,每条指令的操作也非常简单。这使得指令集更易于理解和实现,同时也有助于提高CPU的执行效率。
  5. MIPS指令集广泛应用于嵌入式系统:在早期,MIPS指令集主要应用于嵌入式系统,如Windows CE的设备、路由器、家用网关和视频游戏机等。现在,MIPS指令集已经在PC机、服务器中得到广泛应用。

🪴MIPS指令详解

MIPS指令集包括R型、I型和J型指令,这些指令在计算机程序中有着不同的用途和功能。以下是对这些指令的详细解释:

  1. R型指令(寄存器型指令):
    R型指令是指操作数和保存结果均通过寄存器进行的指令。这些指令通常涉及对寄存器中的数据进行算术或逻辑操作,并将结果存储回原始寄存器或另一个寄存器中。R型指令包括加法、减法、乘法、除法等算术操作,以及与寄存器中的数据进行比较、位移等逻辑操作。

R型指令的格式通常为:opcode Rs Rd shamt funct。其中,opcode是操作码,Rs是源寄存器1,Rd是目标寄存器,shamt是移位量(当涉及到移位操作时),funct是具体的操作类型。

具体R型指令包括:

  • 带有3个寄存器的指令:这些指令通常涉及对两个源寄存器中的数据进行算术或逻辑操作,并将结果存储到目标寄存器中。例如,ADD R1, R2, R3将把R2和R3中的内容相加,并将结果存储到R1中。
  • 带有2个寄存器的指令:这些指令通常涉及对一个源寄存器中的数据进行算术或逻辑操作,并将结果存储到另一个寄存器中。例如,SUB R1, R2, R3将把R2和R3中的内容相减,并将结果存储到R1中。
  • 带有1个寄存器的指令:这些指令通常只对一个寄存器中的数据进行操作,例如,MOV R1, #10将把常量值10加载到R1中。
  1. I型指令(立即数型指令):
    I型指令是指面向立即数的指令。立即数是指直接在指令中指定的常数值,而不是从内存或寄存器中获取的值。I型指令通常用于对常量和某些特定的寄存器进行算术或逻辑操作。

I型指令的格式通常为:opcode Rs Rd imm。其中,opcode是操作码,Rs是源寄存器(如果有),Rd是目标寄存器,imm是立即数。

具体I型指令包括:

  • 面向运算的I型指令:这些指令通常涉及对两个立即数进行算术或逻辑操作,并将结果存储到目标寄存器中。例如,ADD I1, I2, I3将把I2和I3的值相加,并将结果存储到I1中。
  • 面向访存的I型指令:这些指令通常涉及对一个立即数和内存地址进行算术或逻辑操作,并将结果存储到目标寄存器中。例如,LW R1, I2(mem)将从内存地址为I2的值加载到R1中。
  • 面向数位设置的I型指令:这些指令通常涉及对一个立即数的特定位进行设置或清除操作。例如,BSET bit, I1将把I1中特定位的值设置为1。
  • 面向条件转移(分支)的I型指令:这些指令通常用于根据条件进行跳转或分支操作。例如,BEQ I1, I2, label将比较I1和I2的值是否相等,如果相等则跳转到标签指定的位置。
  1. J型指令(转移型指令):
    J型指令是指向转移的指令。这些指令通常用于控制程序的执行流程,包括跳转、分支和子程序调用等操作。J型指令通常包含一个目标地址,程序将直接跳转到该地址执行相应的指令。

J型指令的格式通常为:opcode rs rd。其中,opcode是操作码,rs是源寄存器(如果有),rd是目标地址寄存器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/187731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue 提交表单重复点击,重复提交防抖问题

问题:用户点击保存时,可能会多次点击。导致生成重复数据。 目标:多次点击时,1s内只允许提交一次数据。 解决方案: 1.在utils文件夹创建文件preventReClick.js export default {install (Vue) {// 防止按钮重复点击V…

10个顶级Linux开源反向代理服务器 - 解析与导航

反向代理服务器是一种部署在客户端和后端/源服务器之间的代理服务器,例如 NGINX、Apache 等 HTTP 服务器或用 Nodejs、Python、Java、Ruby 编写的应用程序服务器、PHP 和许多其他编程语言。 它是一个网关或中间服务器,它接受客户端请求,将其传…

2023.11.27 使用anoconda搭建tensorflow环境

2023.11.27 使用anoconda搭建tensorflow环境 提供一个简便安装tensorflow的方法 1. 首先安装anoconda,安装过程略,注意安装的时候勾选安装anoconda prompt 2. 进入anoconda prompt 3. 建立python版本 conda create -n tensorflow1 python3.84. 激活t…

勒索解密后oracle无法启动故障处理----惜分飞

客户linux平台被勒索病毒加密,其中有oracle数据库.客户联系黑客进行解密【勒索解密oracle失败】,但是数据库无法正常启动,dbv检查数据库文件报错 [oraclehisdb ~]$ dbv filesystem01.dbf DBVERIFY: Release 11.2.0.1.0 - Production on 星期一 11月 27 21:49:17 2023 Copyrig…

如何在服务器上运行python文件

目录 前置准备 详细步骤 一,在服务器安装Anaconda 下载安装包 上传文件到服务器 安装环境 二,创建虚拟环境 创建环境 三,测试执行python文件 执行python文件 查看进程状态 总结 前置准备 如何在个人服务器上运行python文件&#x…

Mysql索引案例分析

这篇文章写个案例,测试一下MySQL索引机制 测试表结构 CREATE TABLE t_qrcode_op (id int(11) NOT NULL AUTO_INCREMENT COMMENT 主键,op_mobile varchar(16) NOT NULL,pr_code char(10) NOT NULL,PRIMARY KEY (id),UNIQUE KEY om_pc (op_mobile,pr_code) USING BTR…

会员管理系统的意义何在?

在当今的商业环境中,会员管理系统已经成为企业运营的重要组成部分。会员管理系统的意义在于不仅能够帮助企业提高效率,提升用户体验,进行数据分析,营销推广,还能够帮助企业增加收入。下面,我们将详细探讨会…

微调Fine tune

网络架构 一个神经网络一般可以分为两块 特征抽取将原始像素变成容易线性分割的特征线性分类器来做分类 微调:使用之前已经训练好的特征抽取模块来直接使用到现有模型上,而对于线性分类器由于标号可能发生改变而不能直接使用 训练 是一个目标数据集上…

Linux驱动开发——网络设备驱动(实战篇)

目录 四、 网络设备驱动实例 五、DM9000 网络设备驱动代码分析 六、NAPI 七、习题 书接上回: Linux驱动开发——网络设备驱动(理论篇)-CSDN博客 (没看过上面博客的同学,skb是linux对于网络套接字缓冲区的一个虚拟…

Leetcode 136. 只出现一次的数字

class Solution {//任何数与0异或结果都是原来的数//任何数和自身异或结果都是0//异或满足交换律和结合律//a ^ b ^ a (a ^ a) ^ b 0 ^ b bpublic int singleNumber(int[] nums) {int res nums[0];for(int i 1; i < nums.length; i){res ^ nums[i];}return res;} }

OpenCvSharp从入门到实践-(04)色彩空间

目录 1、GRAY色彩空间 2、从BGR色彩空间转换到GRAY色彩空间 2.1色彩空间转换码 2.2实例 BGR色彩空间转换到GRAY色彩空间 3、HSV色彩空间 4、从BGR色彩空间转换到HSV色彩空间 4.1色彩空间转换码 4.2实例 BGR色彩空间转换到HSV色彩空间 1、GRAY色彩空间 GRAY色彩空间通常…

Spring简单的存储和读取

前言 前面讲了spring的创建&#xff0c;现在说说关于Bean和五大类注解 一、Bean是什么&#xff1f; 在 Java 语⾔中对象也叫做 Bean&#xff0c;所以后⾯咱们再遇到对象就以 Bean 著称。这篇文章还是以spring创建为主。 二、存储对象 2.1 俩种存储方式 需要在 spring-conf…

使用Jmeter进行http接口性能测试

在进行网页或应用程序后台接口开发时&#xff0c;一般要及时测试开发的接口能否正确接收和返回数据&#xff0c;对于单次测试&#xff0c;Postman插件是个不错的Http请求模拟工具。 但是Postman只能模拟单客户端的单次请求&#xff0c;而对于模拟多用户并发等性能测试&#xf…

[Verilog语法]:===和!==运算符使用注意事项

[Verilog语法]&#xff1a;和!运算符使用注意事项 1&#xff0c; 和 !运算符使用注意事项2&#xff0c;3&#xff0c; 1&#xff0c; 和 !运算符使用注意事项 参考文献&#xff1a; 1&#xff0c;[SystemVerilog语法拾遗] 和!运算符使用注意事项 2&#xff0c; 3&#xff0c;

机器学习入门(第五天)——决策树(每次选一边)

Decision tree 知识树 Knowledge tree 一个小故事 A story 挑苹果&#xff1a; 根据这些特征&#xff0c;如颜色是否是红色、硬度是否是硬、香味是否是香&#xff0c;如果全部满足绝对是好苹果&#xff0c;或者红色硬但是无味也是好苹果&#xff0c;从上图可以看出来&#…

数据可视化:用图表和图形展示数据

写在开头 在当今信息爆炸的时代,海量的数据如同一座沉默的宝库,等待着我们挖掘和理解。然而,这些庞大的数据集本身可能令人望而生畏。在这个时候,数据可视化成为了解数据、发现模式和传达信息的强大工具。本篇博客将带领你探索数据可视化的奇妙世界,学习如何在python中使…

91基于matlab的以GUI实现指纹的识别和匹配百分比

基于matlab的以GUI实现指纹的识别和匹配百分比,中间有对指纹的二值化&#xff0c;M连接&#xff0c;特征提取等处理功能。数据可更换自己的&#xff0c;程序已调通&#xff0c;可直接运行。 91M连接 特征提取 (xiaohongshu.com)

Windows 安装redis,设置开机自启动

Windows 安装redis,设置开机自启动 文章目录 Windows 安装redis,设置开机自启动下载, 解压到指定目录设置redis密码启动redis服务端停止redis服务端设置自启动 下载, 解压到指定目录 官网地址: https://redis.io/ 安装包下载地址: https://github.com/tporadowski/redis/relea…

NB-IoT BC260Y Open CPU SDK⑥ADC的应用

NB-IoT BC260Y Open CPU SDK⑥ADC的应用 1、BC260Y_CN_AA模块 ADC的介绍2、ADC相关API的介绍3、软件设计4、实例分析5、以下是调试的结果:1、BC260Y_CN_AA模块 ADC的介绍 BC260Y-CN QuecOpen 模块提供 2 个专用于 ADC(ADC0、ADC1)功能的 I/O 引脚。通过相应的 API函数可以直…

GPLT(有空就写)

L2 - 047 锦标赛 思路&#xff1a; 将其放入一颗满二叉树上去考虑&#xff1a;从二叉树的最底层开始&#xff0c;每一轮比赛&#xff0c;为同一个祖先的左右两个儿子进行比较&#xff0c;而你需要将败者的能力值填到左右两个儿子其中一个上面&#xff0c;另一个就向上传递表示胜…