当前位置: 首页 > news >正文

【学习笔记】计算机组成原理(七)

指令系统

在这里插入图片描述

文章目录

  • 指令系统
    • 7.1 机器指令
      • 7.1.1 指令的一般格式
      • 7.1.2 指令字长
    • 7.2 操作数类型和操作类型
      • 7.2.1 操作数类型
      • 7.2.2 数据在存储器中的存放方式
      • 7.2.3 操作类型
    • 7.3 寻址方式
      • 7.3.1 指令寻址
        • 7.3.1.1 顺序寻址
        • 7.3.1.2 跳跃寻址
      • 7.3.2 数据寻址
        • 7.3.2.1 立即寻址
        • 7.3.2.2 直接寻址
        • 7.3.2.3 隐含寻址
        • 7.3.2.4 间接寻址
        • 7.3.2.5 寄存器寻址
        • 7.3.2.6 寄存器(间接)寻址
        • 7.3.2.7 基址寻址
        • 7.3.2.8 变址寻址
        • 7.3.2.9 相对寻址
        • 7.3.2.10 堆栈寻址
    • 7.4 指令格式举例
      • 7.4.1 设计指令时应考虑的各种因素
      • 7.4.2 举例
    • 7.5 RISC技术
      • 7.5.1 RISC的产生和发展
      • 7.5.2 RISC的主要特征
      • 7.5.3 CISC的主要特征
      • 7.5.4 RISC与CISC的比较

7.1 机器指令

计算机就是连续执行每一条机器语句而实现全自动工作的。

  • 把每一条机器语言的语句称为机器指令;

  • 又将全部机器指令的集合称为机器的指令系统 / 指令集。

    指令集就是计算机系统软件和硬件的交界面,软件通过指令系统告诉计算机的硬件做什么操作,计算机的硬件通过指令系统把运算结果和硬件的状态返回给软件。

7.1.1 指令的一般格式

指令是由操作码和地址码两部分组成的
在这里插入图片描述

  • 操作码

    操作码用来指明该指令所要完成的操作。通常,其位数反映了机器的操作种类, 也即机器允许的指令条数,如操作码占7位,则该机器最多包含27=128 条指令

    实际上操作码的作用远远不止反映机器做什么操作,很多机器的指令集当中,操作码还要指出对什么样的数据进行操作,例如IBM360的指令系统当中,同样是加法操作,因为参与加法操作的数据的类型不一样,表示的基值不一样,一个加法指令实际上是八条指令,分别对应了对定点数加法、浮点数加法、在浮点数加法中尾数的基值是二进制还是十六进制等等。
    另外在有些机器的指令集当中,操作码还指出了操作数的寻址方式。

    • 固定长

      • 将操作码集中放在指令字的一个字段内。这种格式便于硬件设计,指令译码时间短,广泛用于字长较长的、大中型计算机和超级小型计算机以及RISC(Reduced Instruction Set Computer)中。
    • 可变长

      • 操作码长度不固定会增加指令译码和分析的难度,使控制器的设计复杂。通常采用扩展操作码技术,使操作码的长度随地址数的减少而增加,不同地址数的指令可以具有不同长度的操作
        码,从而在满足需要的前提下,有效地缩短指令字长。

        在这里插入图片描述

  • 地址码

    在这里插入图片描述

7.1.2 指令字长

在这里插入图片描述

7.2 操作数类型和操作类型

7.2.1 操作数类型

机器中常见的操作数类型有地址、数字、字符、逻辑数据等。

​ (1)地址

​ 地址实际上也可看做是一种数据,在许多情况下要计算操作数的地址。地址可被认为是一个无符号的整数。

​ (2)数字

​ 计算机中常见的数字有定点数、浮点数和十进制数

​ (3)字符

​ 普遍采用 ASCI 码,还有其他一些字符编码 - 扩展BCD交换码等。

​ (4)逻辑数据

​ 作逻辑运算,此时n个0和1的组合不是被看做算术数字,而是被看做逻辑数。

7.2.2 数据在存储器中的存放方式

在这里插入图片描述

字节编址

在这里插入图片描述

7.2.3 操作类型

  1. 数据传送

    -----
    寄存器寄存器存储器存储器
    目的寄存器存储器寄存器存储器
    例如MOVESTORELOADMOVE
    MOVEMOVE
    PUSHPOP

    置“1”,清“0”

  2. 算术逻辑操作

    加、减、乘、除、增1、减1、求补、浮点运算、十进制运算、与、或、非、异或、位操作、位测试、位清除、位求反

    如 8086ADD SUB MUL DIV INC DEC CMP NEG
    AAA AAS AAM AAD
    AND OR NOT XOR TEST

  3. 移位

    移位可分为算术移位、逻辑移位和循环移位(带进位和不带进位)三种。

    算术移位和逻辑移位分别可实现对有符号数和无符号数乘以2n(左移)或整除以2n(右移)的运算,并且移位操作所需时间远比乘除操作执行时间短,因此,移位操作经常被用来代替简单的乘法和除法运算。

  4. 转移

    (1)无条件转移

    无条件转移不受任何条件约束,可直接把程序转移到下一条需执行指令的地址。

    例如“JMP X"其功能是将指令地址无条件转至X

    (2)条件转移

    在这里插入图片描述

    (3)调用与返回

    在这里插入图片描述

    (4)陷阱(Trap)与陷阱指令

在这里插入图片描述

  1. 输入输出

    并不是每一种指令集都有输入输出指令,如果I/O端口的编址空间被作为内存编址空间的一部分,那么这个指令集就不需要输入输出指令,直接用访问内存的指令就可以对外部设备进行输入输出,如果外部设备有自己的独立地址空间单独编址,就需要单独的输入输出指令对外设进行访问。

    在这里插入图片描述

  2. 其他

    其他包括 等待指令、停机指令、空操作指令、开中断指令、关中断指令、条件码指令 等。

    为了适应计算机的信息管理、数据处理及办公自动化等领域的应用,有的计算机还设有 非数值处理指令 。如字符串传送、字符串比较、字符串查询及字符串转换等。

    在多用户、多任务的计算机系统中,还设有 特权指令 ,这类指令只能用于操作系统或其他系统软件,用户是不能使用的。

    在有些大型或巨型机中,还设有 向量指令 ,可对整个向量或矩阵进行求和、求积运算。

    在多处理器系统中还配有专门的 多处理机指令

7.3 寻址方式

确定本条指令的操作数地址

下一条要执行指令的指令地址

7.3.1 指令寻址

7.3.1.1 顺序寻址

取完一条指令后,顺序的取下一条指令。

( PC ) + 1 → PC

内存单元的编址单位是字节,每一条指令的长度是32位(四个字节),顺序存储每次加的值就是4,

如果指令的长度是64位,则PC+8。

如果指令是可变长度的话,这个1会更加复杂。

7.3.1.2 跳跃寻址

由转移指令给出下一条指令地址

在这里插入图片描述

7.3.2 数据寻址

在这里插入图片描述

7.3.2.1 立即寻址

在这里插入图片描述

7.3.2.2 直接寻址

在这里插入图片描述

7.3.2.3 隐含寻址

在这里插入图片描述

7.3.2.4 间接寻址

在这里插入图片描述

7.3.2.5 寄存器寻址

在这里插入图片描述

7.3.2.6 寄存器(间接)寻址

在这里插入图片描述

7.3.2.7 基址寻址

基址寄存器可采用隐式的和显式的两种。

所谓隐式,是在计算机内专门设有一个基址寄存器BR,使用时用户不必明显指出该基址寄存器,只需由指令的寻址特征位反映出基址寻址即可。

显式是在一组通用寄存器里,由用户明确指出哪个寄存器用做基址寄存器,存放基地址。

  • 采用专用寄存器作为基址寄存器,有效地址是基址寄存器中的内容加上形式地址(形式地址实际上就是一个偏移量)。

在这里插入图片描述

  • 采用通用寄存器作基址寄存器

在这里插入图片描述

7.3.2.8 变址寻址

在这里插入图片描述

在这里插入图片描述

7.3.2.9 相对寻址

在这里插入图片描述

在这里插入图片描述

7.3.2.10 堆栈寻址

在计算机的硬件实现的栈是高地址向低地址方向,即栈顶是低地址,栈底是高地址。

在这里插入图片描述

7.4 指令格式举例

7.4.1 设计指令时应考虑的各种因素

  1. 指令系统的 兼容性

  2. 其他因素

    操作类型 包括指令个数及操作的难易程度

    数据类型 确定哪些数据类型可参与操作

    指令格式 指令字长是否固定操作码位数,是否采用扩展操作码技术地址码位数,地址个数,寻址方式类型

    寻址方式 指令寻址、操作数寻址

    寄存器个数 寄存器的多少直接影响指令的执行时间

7.4.2 举例

  • PDP - 8

    在这里插入图片描述

  • PDP - 11

    在这里插入图片描述

  • IBM 360

在这里插入图片描述

  • Intel8086

    在这里插入图片描述

7.5 RISC技术

7.5.1 RISC的产生和发展

RISC (Reduced Instruction Set Computer ) 精简指令系统计算机

CISC(Complex Instruction Set Computer ) 复杂指令系统计算机

RISC技术 —— 80 - 20 规律

  • 典型程序中80%的语句仅仅使用处理机中20%的指令
  • 执行频度高的简单指令,因复杂指令的存在,执行速度无法提高
  • 能否用20%的简单指令组合不常用的80%的指令功能

7.5.2 RISC的主要特征

  • 选用使用频度较高的一些简单指令复杂指令的功能由简单指令来组合
  • 指令 长度固定、指令格式种类少、寻址方式少
  • 只有 LOAD /STORE 指令访存
  • CPU 中有多个 通用寄存器
  • 采用 流水技术 一个时钟周期内完成一条指令
  • 采用 组合逻辑 实现控制器

7.5.3 CISC的主要特征

  • 系统指令复杂庞大,各种指令使用频度相差大指令
  • 长度不固定、指令格式种类多、寻址方式多
  • 访存 指令 不受限制
  • CPU 中设有 专用寄存器
  • 大多数指令需要 多个时钟周期 执行完毕
  • 采用 微程序 控制器

7.5.4 RISC与CISC的比较

  • RISC更能 充分利用 VLSI 芯片的面积【VLSI芯片:超大规模集成电路(Very Large Scale Integration Circuit)】
  • RISC 更能 提高计算机运算速度
    • 指令数、指令格式、寻址方式少
    • 通用 寄存器多,减少访存次数
    • 采用 组合逻辑比微程序延迟小,缩短CPU周期
    • 便于实现 指令流水
  • RISC 便于设计,可 降低成本,提高 可靠性
  • RISC 不易 实现 指令系统兼容

参考:
教材:计算机组成原理 (唐朔飞).pdf
视频:
https://www.bilibili.com/video/BV1t4411e7LH?p=107&vd_source=a89593e8d33b31a56b894ca9cad33d33

相关文章:

【学习笔记】计算机组成原理(七)

指令系统 文章目录 指令系统7.1 机器指令7.1.1 指令的一般格式7.1.2 指令字长 7.2 操作数类型和操作类型7.2.1 操作数类型7.2.2 数据在存储器中的存放方式7.2.3 操作类型 7.3 寻址方式7.3.1 指令寻址7.3.1.1 顺序寻址7.3.1.2 跳跃寻址 7.3.2 数据寻址7.3.2.1 立即寻址7.3.2.2 直…...

pillow学习4

ImageChops 模块 在 Pillow 库的内置模块 ImageChops 中包含了多个用于实现图片合成的函数。这些合成 功能是通过计算通道中像素值的方式来实现的。其主要用于制作特效、合成图片等操作。 常用的内置函数如下所示: (1)相加函数 add()&#xf…...

外企如何有效面对日益严格的跨境数据传输法律?

在当今这个数据驱动的时代,随着全球化步伐的加快,企业跨国界的数据交流已成为常态。但随之而来的,是各国政府对跨境数据传输日益严格的规定和监管,这让众多外资企业(简称“外企”)在享受全球市场红利的同时…...

运维开发.MySQL.范式与反范式化

运维开发 MySQL.三大范式 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/artic…...

HCIA-HarmonyOS Application Developer 课程大纲

一:鸿蒙 Mac 版、 Windows 版【编辑器】和【模拟器】 & 鸿蒙基础环境搭建 - ( 3 课时) - Mac arm 版开发环境搭建:Mac arm 版模拟器安装及配置;安装 DevEcoStudioPreview 版本; - Windows 版开发…...

如何用Java实现SpringCloud Alibaba Sentinel的熔断功能?

在Java中使用Spring Cloud Alibaba Sentinel实现熔断功能的步骤如下&#xff1a; 添加依赖 在项目的pom.xml文件中添加Spring Cloud Alibaba Sentinel的依赖&#xff1a; <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud…...

Day27

Day27 反射案例 案例一&#xff1a;万能数组扩容 注意&#xff1a;copyOf、toString public class Test01 {/*** 知识点&#xff1a;反射案例 之 万能数组扩容* * 注意&#xff1a;copyOf、toString*/public static void main(String[] args) {String[] ss {"aaa"…...

uni-app App端实现文字语音播报(Ba-TTS)

前言 最近在遇到消息提示语音播放出来&#xff0c;查了一圈文档发现并没有自带api 后面想起支付宝收钱播报&#xff0c;不受限与系统环境和版本环境&#xff08;后面查阅他是音频实现的&#xff09; 如果是由安卓端需要语音播放功能-直接使用Ba-TTs救急&#xff08;需要付费2…...

在WHM中如何调整max_upload_size 参数大小

今日我们在搭建新网站时需要调整一下PHP参数max_upload_size 的大小&#xff0c;我们公司使用的Hostease的美国独立服务器产品默认5个IP地址&#xff0c;也购买了cPanel面板&#xff0c;因此联系Hostease的技术支持&#xff0c;寻求帮助了解到如何在WHM中调整PHP参数&#xff0…...

docker system prune命令详解

docker system prune 是 Docker 中的一个命令&#xff0c;用于清理 Docker 系统中的未使用资源&#xff0c;以帮助回收磁盘空间。这个命令执行一系列操作来删除不再需要的项目&#xff0c;具体包括&#xff1a; 删除所有已停止的容器。删除所有未被任何容器引用的网络&#xf…...

使用jdk自带jhat工具排查OOM问题

使用jdk自带jhat工具排查OOM问题 OOM java.lang.OutOfMemoryError: Java heap space排查步骤 编写一个测试类 public class TestJVM {Testpublic void test1() throws InstantiationException, IllegalAccessException {List<A> list new ArrayList<>();for (i…...

独孤思维:付费就是割韭菜,千万别上当

01 很多人觉得付费是坑&#xff0c;是割韭菜。 其实大多数情况&#xff0c;你所付费的&#xff0c;是购买了别人的经验。 让你能够少走很多弯路&#xff0c;让你能够节约大量时间和精力&#xff0c;购买别人的成功路径。 打一个粗俗的比方。 很多人都说&#xff0c;买的资料&am…...

【PB案例学习笔记】-12秒表实现

写在前面 这是PB案例学习笔记系列文章的第11篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码&#xff0c;小凡都上传到了gite…...

Linux驱动开发笔记(二) 基于字符设备驱动的GPIO操作

文章目录 前言一、设备驱动的作用与本质1. 驱动的作用2. 有无操作系统的区别 二、内存管理单元MMU三、相关函数1. ioremap( )2. iounmap( )3. class_create( )4. class_destroy( ) 四、GPIO的基本知识1. GPIO的寄存器进行读写操作流程2. 引脚复用2. 定义GPIO寄存器物理地址 五、…...

【ESP32之旅】ESP32 PlatformIO 固件单独烧录

背景 有时候使用PIO编写的代码需要发给客户去验证&#xff0c;相比较于发送源码直接发送bin文件&#xff0c;更加的安全而且高效。不用担心源码的泄漏&#xff0c;也不用帮客户配置PIO环境。 操作方法 1.编译 首先进行代码编译&#xff0c;如编译成功会在 .pio\build\airm2…...

视频监控业务平台LntonCVS运用国标协议对接视频汇聚管理综合平台应用方案

为了实现“以信息化推动应急管理能力现代化”的目标&#xff0c;应急管理部提出了加速现代信息技术与应急管理业务深度融合的计划。这一计划是国家加强和改进应急管理工作的关键举措&#xff0c;也是满足日益严峻的应急管理形势和人民群众不断增长的公共安全需求的紧迫需求。 为…...

【Linux 网络编程】协议的分层知识!

文章目录 1. 计算机网络背景2. 认识 "协议"3. 协议分层 1. 计算机网络背景 网络互联: 多台计算机连接在一起, 完成数据共享; &#x1f34e;局域网&#xff08;LAN----Local Area Network&#xff09;: 计算机数量更多了, 通过交换机和路由器连接。 &#x1f34e; 广…...

Firefox国际版

Firefox国际版官方网址&#xff1a; Download the Firefox Browser in English (US) and more than 90 other languagesEveryone deserves access to the internet — your language should never be a barrier. That’s why — with the help of dedicated volunteers around…...

封装和解构是 Python 中常用的技术

目录 前言 一、封装&#xff08;Packing&#xff09;&#xff1a; 二、解构&#xff08;Unpacking&#xff09;&#xff1a; 2.1 解构元组或列表&#xff1a; 2.2 解构字典&#xff1a; 2.3 使用*进行解构&#xff1a; 2.4 解构函数返回值 总结 前言 提示&#xff1a;这…...

理解OAuth:服务间的授权机制

理解OAuth:服务间的授权机制 好的,让我来教你一下关于这个奇怪的东西。 在不同的项目中,认证有很多不同的方式。但在我们深入探讨它的使用方式之前,让我们先来看看它最初的用途。 首先,我们可以从名称中得到一些线索。“auth”这个词与什么有关呢?问题是,这里的“aut…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...