计算机组成原理 — 指令系统

指令系统

  • 指令系统
    • 指令的概述
      • 指令的格式
      • 指令的字长取决于
    • 操作数类型和操作种类
      • 操作数的类型
      • 数据在存储器中的存放方式
      • 操作类型
    • 寻址方式
      • 指令寻址
      • 数据寻址
        • 立即寻址
        • 直接寻址
        • 隐含寻址
        • 间接寻址
        • 寄存器寻址
        • 寄存器间接寻址
        • 基址寻址
        • 变址寻址
        • 堆栈寻址
    • RISC 和 CISC 技术
      • RISC 即精简指令系统计算机
      • CISC 即复杂指令系统计算机
      • RISC 和 CISC 的比较


大家好呀!我是小笙,本章我主要分享计算机组成原理的指令系统知识,希望内容对你有所帮助!

指令系统

指令的概述

指令的格式

image-20240322124839520
  • 操作码:反映机器做什么操作

    • 长度固定:将操作码集中放在指令字的一个字段内(用于指令字段较长的情况。例如: IBM370)

    • 长度可变:操作码分散在指令字的不同字段中(有效地压缩操作码的平均长度,在字长较短的微型计算机中被广泛采用。例如:PDP-11)

    • 扩展操作码技术:操作码的位数随地址数的减少而增加

      image-20240322125211160
  • 地址码:地址码用来指出该指令的源操作数的地址(一个或两个)、结果的地址以及下一条指令的地址

    分类:四地址指令、三地址指令、二地址指令、一地址指令、零地址指令

指令的字长取决于

  • 操作码的长度
  • 操作数地址的长度
  • 操作数地址的个数

指令字长可以分为固定和可变:固定的时候,指令字长 = 存储字长 ; 可变的时候,按字节的整数倍数变化

操作数类型和操作种类

操作数的类型

  • 地址:无符号整数
  • 数字:定点数、浮点数、十进制数
  • 字符:ASCII
  • 逻辑数:逻辑运算

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

  • 不对准边界(从任意位置开始访问)

    优点:不浪费存储资源

    缺点:除了访问每个字节之外,访问其他任何类型的数据都可能花费两个存储周期的时间;读写控制比较复杂

    image-20231113221113765

  • 对准边界(从一个存储字的起始位置开始访问)

    优点:无论访问任何类型的数据,在一个周期均可完成;读写控制简单

    缺点:浪费了宝贵的存储资源

    image-20231113221137383

  • 边界对转方式(从地址的整数倍位置开始访问)

    数据存放的起始位置是数据长度的整数倍(前面两种方式的折中方案)

操作类型

  • 数据传送:数据传送包括寄存器与寄存器、寄存器与存储单元、存储单元与存储单元之间的传送
  • 算术逻辑操作:算术运算和逻辑运算
  • 移位操作:分为算术移位、逻辑移位和循环移位
  • 转移:跳转、无条件/条件转移等
  • 输入输出:从外设中的寄存器读入一个数据到 CPU 的寄存器内,或将数据从 CPU 的寄存器输出至某外设的寄存器中

寻址方式

寻址方式:确定本条指令的数据地址以及下一条将要执行的指令地址的方法

寻址方式分为指令寻址和数据寻址两大类

指令寻址

  • 顺序寻址可通过程序计数器PC加1,自动形成下一条指令的地址
  • 跳跃寻址则通过转移类指令实现
image-20240326124133642

数据寻址

指令的地址码字段通常都不代表操作数的真实地址

image-20240326124748293

  • 形式地址:指令中的地址(可以理解为逻辑地址)
  • 有效地址:操作数的真实地址

以下寻址方式建立在 指令字长 = 存储字长 = 机器字长


立即寻址

操作数本身设在指令字内,即形式地址 A 不是操作数的地址,而是操作数本身,又称之为立即数(数据是采用补码形式存放的)

image-20240326124901358

优点:只要取出指令,便可立即获得操作数,这种指令在执行阶段不必再访问存储器

缺点:显然 A 的位数限制了这类指令所能表述的立即数的范围


直接寻址

EA = A 有效地址由形式地址直接给出

image-20240326125244468

优点:寻找操作数比较简单,也不需要专门计算操作数的地址,在指令执行阶段对主存只访问一次

缺点:A 的位数限制了操作数的寻址范围,而且必须修改A的值,才能修改操作数的地址


隐含寻址

指令字中不明显地给出操作数的地址,其操作数的地址隐含在操作码或某个寄存器中

image-20240326125334507

由于隐含寻址在指令字中少了一个地址,因此,这种寻址方式的指令有利于缩短指令字长


间接寻址

倘若指令字中的形式地址不直接指出操作数的地址,而是指出操作数有效地址所在的存储单元地址,也就是说,有效地址是由形式地址间接提供的,即为间接寻址,即EA=(A)

image-20240326125446727

优点:它扩大了操作数的寻址范围以及便于编程

缺点:在于指令的执行阶段需要访存两次(一次间接寻址)或多次(多次间接寻址),致使指令执行时间延长


寄存器寻址

在寄存器寻址的指令字中,地址码字段直接指出了寄存器的编号,即EA=Ri

image-20240327124227915

优点

  • 操作数不在主存中,故寄存器寻址在指令执行阶段,无须访存,减少了执行时间
  • 地址字段只需指明寄存器编号(计算机中寄存器数有限),故指令字较短,节省了存储空间

寄存器间接寻址

Ri 中的内容不是操作数,而是操作数所在主存单元的地址号,即有效地址EA=(Ri)(有效地址不是存放在存储单元中,而是存放在寄存器中)

image-20240327124329884
基址寻址

基址寻址需设有基址寄存器 BR,其操作数的有效地址EA等于指令字中的形式地址与基址寄存器中的内容(称为基地址)相加,即 EA = A + (BR)

  • 隐式:计算机内部专门设置一个基址寄存器 BR,使用时用户不必明显指出该基址寄存器
  • 显式:一组通用的寄存器里,由用户来明确指出哪个寄存器用作基址寄存器
image-20240327124532788

优点

  • 基址寻址可以扩大操作数的寻址范围
  • 基址寻址在多道程序中极为有用
  • 用户也不可以修改基址寄存器的内容,确保系统安全可靠地运行

变址寻址

变址寻址与基址寻址极为相似。其有效地址EA等于指令字中的形式地址A与变址寄存器 X的内容相加之和,即 EA = A +(IX)

变址寻址主要用于处理数组问题,在数组处理过程中,可设定A为数组的首地址,不断改变变址寄存器X的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序

image-20240327125011238

优点

  • 只要变址寄存器位数足够,也可扩大操作数的寻址范围
  • IX 的内容由用户给定
  • 在程序执行过程中 IX 内容可变,形式地址A是不可变的
  • 便于处理数组问题

堆栈寻址

堆栈分为硬堆栈(多个寄存器)、软堆栈(指定的存储空间)

堆栈寻址就其本质也可视为寄存器间接寻址,因SP可视为寄存器,它存放着操作数的有效地址

image-20240327125542646

RISC 和 CISC 技术

RISC 即精简指令系统计算机

主要特征:

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

CISC 即复杂指令系统计算机

主要特征:

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

RISC 和 CISC 的比较

CISCRISC
指令系统复杂,庞大简单,精简
指令数目大于200条小于100条
指令字长不固定定长
可访存指令不加限制只有Load/Store指令
控制方式绝大多数为微程序绝大多数用组合逻辑
通用寄存器数量较少

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

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

相关文章

「AI作曲家」Suno 使用 v3 在几秒钟内创作完整的两分钟歌曲

Suno 被誉为“音乐界的 ChatGPT”,它的独特之处在于能够根据简单的提示,自主创作包括歌词、人声和配器在内的完整音乐作品。更令人惊叹的是,你可以引导它精确地选择任何想要的音乐风格,从古老的三角洲蓝调到现代的电子寒潮,它还能灵活运用各种方言。 Suno 正在开启一个全…

【学习笔记】java项目—苍穹外卖day01

文章目录 苍穹外卖-day01课程内容1. 软件开发整体介绍1.1 软件开发流程1.2 角色分工1.3 软件环境 2. 苍穹外卖项目介绍2.1 项目介绍2.2 产品原型2.3 技术选型 3. 开发环境搭建3.1 前端环境搭建3.2 后端环境搭建3.2.1 熟悉项目结构3.2.2 Git版本控制3.2.3 数据库环境搭建3.2.4 前…

使用certbot为网站启用https

1. 安装certbot客户端 cd /usr/local/bin wget https://dl.eff.org/certbot-auto chmod ax ./certbot-auto 2. 创建目录和配置nginx用于验证域名 mkdir -p /data/www/letsencryptserver {listen 80;server_name ~^(?<subdomain>.).ninvfeng.com;location /.well-known…

【Linux】 centos7安装卸载SQL server(2017、2019)

一、安装配置 准备一个基础Linux配置&#xff1a; 内存为20GB 运行内存为2GB的系统&#xff08;数据库小于2GB安装不了&#xff09; 1、网络配置 我们需要进行网络的连接 进入 cd /ect/sysconfig/network-script/ 编辑文件ifcfg-ens33 vi ifcfg-ens33 Insert键进行编辑 把ONBOO…

2024最新Win系统下VSCode下载安装与配置C/C++教程

2024最新Win系统下VSCode下载安装与配置C/C教程 文章目录 2024最新Win系统下VSCode下载安装与配置C/C教程1、下载安装VSCode2、安装运行时环境GCGC的环境配置 3、安装VSCode插件4、配置程序调试环境4.1确定文件存储路径4.2新建文件夹【.vscode】4.3在.vscode文件夹里新建四个配…

学透Spring Boot — [二] Spring 和 Spring Boot的比较

欢迎关注我们的专栏 学透 Spring Boot 一、创建一个简单Web应用 本篇文章&#xff0c;我们将会比较 Spring 框架和 Spring Boot 的区别。 什么是 Spring? 也许你在项目中已经可以很熟练的使用 Spring 了&#xff0c;但是当被问到这个问题时&#xff0c;会不会犹豫一下&#…

轻松赚钱,精彩生活:上班族副业赚钱新攻略大揭秘!

薪水总是捉襟见肘&#xff0c;每月账单总让人倍感压力。你是否曾在静谧的夜晚&#xff0c;躺在床上&#xff0c;思索如何为家庭多赚一分钱&#xff1f;其实&#xff0c;你并不孤单。在这个充满机遇与挑战的时代&#xff0c;越来越多的人开始寻找副业&#xff0c;以期望让生活更…

QT控件之显示控件

Qt Designer显示窗口部件提供的面板中&#xff0c;提供了10种显示小部件 &#xff08;1&#xff09; Label标签 &#xff08;2&#xff09; Text Browser文本浏览器 &#xff08;3&#xff09; Graphics View图形视图 &#xff08;4&#xff09; Calendar Widget日历 &…

【Bug-ModuleNotFoundError: No module named ‘models‘】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Python &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 出现这个错误&#xff1a; 出现了ModuleNotFoundError: No module named models’的问题。 文件在Model…

【操作系统复习之路】操作系统概述(复习的同学有福啦)

长话短说&#xff0c;就记下笔记&#xff0c;期待期末90&#xff0c;随便希望能帮助到有需要的同学。 目录 一、操作系统的目标和作用 二、操作系统的发展过程 2.1 无OS 2.2 有OS 【1】批处理系统 【2】分时系统 【3】实时操作系统 【4】三种基本操作系统的比较&#…

域环境共享文件夹,容量配额管理

首先&#xff0c;我们先创建一个新的磁盘&#xff0c;必须在服务器关机的状态下创建&#xff0c;只有在关机状态下才能创建NVMe类型的磁盘。 打开此电脑&#xff0c;右击创建的磁盘&#xff0c;点击属性。 点击共享&#xff0c;点击高级共享。 将共享此文件夹勾选上&#xff0c…

从代码到可执行到运行的整体流程与原理

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 前言 本篇文章将会介绍&#xff0c;磁盘中是如何存储一个文件&#xff0c;磁盘中的文件是如何从磁盘中加载进内存&#xff0c;与进程又有怎样的关系&#xff0c;我们写的代码变成可执行程序执行起来时如何完成对文件的一系列…

ubuntu系统下如何使用vscode编译和调试#小白入门#

编程环境&#xff1a;ubuntu系统为18.04.1&#xff0c;vscode版本为1.66.2 一、VSCode切换中文显示&#xff1a; 1、vscode安装完成后启动,在左侧externsions中搜索“简体中文”插件&#xff0c;并完成安装&#xff1a; 2、选择右下角齿轮形状的"Manage"&#xff…

YOLOv5全网独家改进: 红外小目标 | 注意力机制改进 | 并行化注意力设计(PPA)模块,红外小目标暴力涨点 | 2024年3月最新成果

💡💡💡本文独家改进:红外小目标涨点利器,在多个数据集下进行验证,其中并行化 patch-aware 注意力(PPA)模块,解决目标的大小微小以及红外图像中通常具有复杂的背景的问题点 💡💡💡红外小目标实现暴力涨点,只有几个像素的小目标识别率大幅度提升 改进结构图如…

算法---动态规划练习-7(按摩师)【类似打家劫舍】

按摩师 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;点这里 2. 讲解算法原理 首先&#xff0c;给定一个整数数组 nums&#xff0c;其中 nums[i] 表示第 i 天的预约时间长度。 定义两个辅助数组 f 和 g&#xff0c;长度都为 n&#xff08;n 是数组…

Gartner 公布 2024 年八大网络安全预测

近日&#xff0c;Gartner 安全与风险管理峰会在悉尼举行&#xff0c;旨在探讨网络安全的发展前景。 本次峰会&#xff0c;Gartner 公布了 2024 年及以后的八大网络安全预测。 Gartner 研究总监 Deepti Gopal 表示&#xff0c;随着 GenAI 的不断发展&#xff0c;一些长期困扰网…

【项目技术介绍篇】若依管理系统功能介绍

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…

【Web应用技术基础】CSS(5)——表格样式

第一题&#xff1a;表格边框 .html <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>HTML – 简单表格</title><link rel"stylesheet" href"step1/CSS/style.css"></head><bod…

Windows无法安装torch==1.4.0

在conda中&#xff0c;每创建一个虚拟环境&#xff0c;就要重新配置其中的pytorch 这次我创建的虚拟环境需要torch1.4.0的版本。 torch网址&#xff1a;https://pytorch.org/get-started/previous-versions/ 解决办法 按以下代码进行安装&#xff1a; pip install torch0.4.0…

JAVA HTTP大文件断点续传上传

功能&#xff1a;大文件上传&#xff0c;断点续传&#xff0c;文件夹上传&#xff0c;重复文件检测&#xff0c;离线进度信息保存&#xff0c;音视频信息读取 优势&#xff1a;无限授权&#xff0c;开源开放&#xff08;自主可控&#xff09;&#xff0c;长期维护 场景&#…