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

指令系统

在这里插入图片描述

文章目录

  • 指令系统
    • 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

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

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

相关文章

精品PPT | 精益生产管理中MES系统的实现与应用(免费下载)

【1】关注本公众号,转发当前文章到微信朋友圈 【2】私信发送 MES系统的实现与应用 【3】获取本方案PDF下载链接,直接下载即可。 如需下载本方案PPT/WORD原格式,请加入微信扫描以下方案驿站知识星球,获取上万份PPT/WORD解决方案&…

Redis - 缓存场景

学习资料 学习的黑马程序员哔站项目黑马点评,用作记录和探究原理。 Redis缓存 缓存 :就是数据交换的缓冲区,是存储数据的临时地方,读写性能较高 缓存常见的场景: 数据库查询加速:通过将频繁查询的数据缓存起来&…

嵩山为什么称为三水之源

三水指黄河、淮河、济河,这三条河流环绕在嵩山周边。 黄河横亘在嵩山北部,其支流伊洛河从西南方环绕嵩山,然后汇入黄河。济河,古称济水,源自济源王屋山,自身河道在东晋时代被黄河夺占,从此消失。…

毕设 大数据校园卡数据分析

文章目录 0 前言1 课题介绍2 数据预处理2.1 数据清洗2.2 数据规约 3 模型建立和分析3.1 不同专业、性别的学生与消费能力的关系3.2 消费时间的特征分析 4 Web系统效果展示5 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设…

【vue2配置】Vue Router

Vue Router官网 1、npm install vue-router4 2、创建模块,在src目录小创/views/map/MapIndex.vue模块和创router/index.js文件 3、在router/index.js配置路由 import Vue from "vue"; import Router from "vue-router"; // 引入模块 const Ma…

智慧校园建设的进阶之路

智慧校园的建设现已到达了老练的阶段,许多学校设备充满着数字化信息,进出宿舍楼,校园一卡通体系会记载下学生信息,外来人员闯入会报警,翻开电脑就能查到学生是否在宿舍等……学生的学习和日子都充满了数字化的痕迹。但…

光速入门python的OpenCV

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理python的OpenCV模块的关键知识点 争取用最短的时间入门OpenCV 并且做到笔记功能直接复制使用 OpenCV简介 不浪费时间的介绍: 就是类似于ps操作图片。 至于为什么不直接用ps,因为只有程序能…

【找出满足差值条件的下标 I】python

目录 暴力题解 优化:滑动窗口维护大小值 暴力题解 class Solution:def findIndices(self, nums: List[int], indexDifference: int, valueDifference: int) -> List[int]:nlen(nums)for i in range(n):for j in range(n-1,-1,-1):if abs(i-j)>indexDiffere…

海康威视NVR通过ehome协议接入视频监控平台,视频浏览显示3011超时错误的问题解决,即:The request timeout! 【3011】

目录 一、问题描述 二、问题分析 2.1 初步分析 2.2 查看日志 2.3 问题验证 1、查看防火墙 2、查看安全组 3、问题原因 三、问题解决 3.1 防火墙开放相关端口 3.2 安全组增加规则 3.3 测试 1、TCP端口能够联通的情况 2、TCP端口不能够联通的情况 四、验证 五、云…

「51媒体」如何与媒体建立良好关系?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 与媒体建立良好关系对于企业或个人来说都是一项重要的公关活动。 了解媒体:研究媒体和记者的兴趣,提供相关且有价值的信息。 建立联系:通过专业的方式…

牛客NC324 下一个更大的数(三)【中等 双指针 Java/Go/PHP/C++】参考lintcode 52 · 下一个排列

题目 题目链接: https://www.nowcoder.com/practice/475da0d4e37a481bacf9a09b5a059199 思路 第一步:获取数字上每一个数,组成数组arr 第二步:利用“下一个排列” 问题解题方法来继续作答,步骤:利用lintc…

C++进阶之路:何为拷贝构造函数,深入理解浅拷贝与深拷贝(类与对象_中篇)

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

PostgreSQL基础(三):PostgreSQL的基础操作

文章目录 PostgreSQL的基础操作 一、用户操作 二、权限操作 三、操作任务

解决CLion调试时无法显示变量值的问题

1 问题描述 使用CLion的时候,调试时无法显示变量的值,例如: 图来自StackOverflow。 2 解决办法 可以尝试切换调试器解决,在Linux下,CLion支持GDB和LLDB,如果GDB不行,可以切换到LLDB。 切换方…

软件杯 题目: 基于深度学习的疲劳驾驶检测 深度学习

文章目录 0 前言1 课题背景2 实现目标3 当前市面上疲劳驾驶检测的方法4 相关数据集5 基于头部姿态的驾驶疲劳检测5.1 如何确定疲劳状态5.2 算法步骤5.3 打瞌睡判断 6 基于CNN与SVM的疲劳检测方法6.1 网络结构6.2 疲劳图像分类训练6.3 训练结果 7 最后 0 前言 🔥 优…

为什么单片机不能直接驱动继电器和电磁阀

文章是瑞生网转载,PDF格式文章下载: 为什么单片机不能直接驱动继电器和电磁阀.pdf: https://url83.ctfile.com/f/45573183-1247189072-10b6d1?p7526 (访问密码: 7526)

Science 基于尖峰时序编码的模拟神经触觉系统,可实现动态对象分类

快速处理和有效利用手与物体交互过程中产生的动态触觉信号(例如触摸和抓握)对于触觉探索和灵巧的物体操作至关重要。将电子皮肤(e-skins)推进到模仿自然触觉的水平,是恢复截肢者和瘫痪患者丧失的功能的可行解决方案&am…

实现地图上展示坐标时,不要全部展示、只展示几个距离相对较大marker点位,随着地图放大再全部展示出来。

比例尺级别地面分辨率 (米/像素)比例尺0156543.031:591658700.82178271.5151:295829350.4239135.75751:147914675.2319567.878751:73957337.649783.9393751:36978668.854891.9696881&#xff1a…

电机控制系列模块解析(22)—— 零矢量刹车

一、零矢量刹车 基本概念 逆变器通常采用三相桥式结构,包含六个功率开关元件(如IGBT或MOSFET),分为上桥臂和下桥臂。每个桥臂由两个反并联的开关元件组成,上桥臂和下桥臂对应于电机三相绕组的正负端。正常工作时&…

【C++题解】1699 - 输出是2的倍数,但非3的倍数的数

问题:1699 - 输出是2的倍数,但非3的倍数的数 类型:循环 题目描述: 请从键盘读入一个整数 n,输出 1∼n 中所有是 2 的倍数,但非 3 的倍数的数,每行 1个。 比如,读入一个整数10 &…