计组_机器指令

news2024/10/7 8:30:27

2024.06.13:计算机组成原理机器指令学习笔记

第13节 机器指令

  • 3.1 指令的作用
  • 3.2 指令的格式
    • 3.2.1 操作码字段(用户要干什么)
    • 3.2.2 (操作数)地址码字段(对谁进行操作)
    • 3.2.3 格式分类*(一步步优化)
      • (1) 四地址指令
      • (2) 三地址指令
      • (3) 二地址指令
      • (4) 一地址指令
      • (5) 零地址指令
  • 3.3 指令的字长*
  • 3.4 定长操作码与扩展码
    • 3.4.1 定长操作码
    • 3.4.2 扩展操作码
  • 3.5 数据在存储器中的存放位置
    • 3.5.1 不进行边界对齐
    • 3.5.2 进行边界对齐


指令要好好学习,为了后续CPU的学习做准备

3.1 指令的作用

CPU中运行的指令到底是什么?

  • 冯诺依曼机:计算机就是连续执行每一条机器指令而实现全自动工作的
  • 进程:进程里面有一部分就是指令的集合,执行进程其实就是在执行一条条指令
  • 全部机器指令的集合称为机器的指令系统

计算机的目的就是为了执行指令,执行一条条指令就可以完成我们想要的操作。我们想要达到什么目的,就把它编写成算法,算法在机器内就会被拆解成一步一步的指令去完成


3.2 指令的格式

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

  • 操作码往往写在前面,指示要做什么样的动作,机器就可以读懂
  • 地址码其实是记录着这个指令可能用到的操作数它的地址,值得注意的是这里的地址并不一定是它的真实地址或者有效地址

3.2.1 操作码字段(用户要干什么)

  • 操作码用来指明该指令所要完成的操作
  • 操作码位数反映了机器的操作种类,即机器允许的指令条数
  • 操作码占n位,则该机器最多包含2的n次幂条指令
  • 操作码长度可以固定也可以变化怎么变化就是扩展操作码的内容

3.2.2 (操作数)地址码字段(对谁进行操作)

  • 地址码用来指出该指令的源操作数的地址、结果的地址以及下一条指令的地址

这里我们是把整个地址码字段划成一个了,那在不同的指令里面,可能有多个地址码,那它就可以分别指示原操作数的地址、结果地址等等

  • 这个地址可以是主存地址,也可以是寄存器地址具体如何要看选址方式

3.2.3 格式分类*(一步步优化)

指令格式:操作码字段(用户要干什么)+地址码字段(对谁进行操作)

  • op:指令对应的操作
  • A1:第一个地址码字段
  • A2:第二个地址码字段
  • A3:保存计算结果
  • A4:下一条指令的地址码字段

根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或者几地址指令

()表示取地址码所在的存储单元内的信息,或者说取地址里面的值。即加括号取存的信息,不加就取地址信息


(1) 四地址指令

在这里插入图片描述

  • A1记录了第一个操作数
  • A2记录了第二个操作数
  • 结果写在A3这个地址
  • A4用于指示下一条指令的地址

注意:程序中指令一般按顺序执行,PC可以通过自增自动形成下一条指令的地址,因此A4可以省去


(2) 三地址指令

在这里插入图片描述
第一个操作数A1对第二个操作数A2进行OP操作,最终结果写回A3,后续指令的地址就由PC自增得出

思考:什么是PC自增?PC是程序计数器,它用来指示当前你执行的这个指令,它的地址是什么,执行完这条指令,取完这条指令之后,PC就可以自动地去计算下一条执行指令的地址

如果指令运算的结果是中间结果,那么就没有必要每次都放入主存Why?
假如说有连续的两条指令,第一条指令算的结果,第二条指令还要用,那其实我们没有必要把它写回主存,不然我们执行下一条指令的时候还需要从主存去把它取出来,我们知道寄存器的访问速度是比主存要快的,如果选择访存,效率就会比较低,但是如果我们把中间结果放在寄存器里面,下一次再用的话,访问速度就可以得到提升,可以暂存在CPU的寄存器中。


(3) 二地址指令

在这里插入图片描述
对于二地址指令来说,我们可以将一个源操作数隐含在运算器的ACC中


(4) 一地址指令

在这里插入图片描述
对于一地址指令,我们还可以直接去掉地址字段,形成零地址指令


(5) 零地址指令

在这里插入图片描述

  • 空操作NOP、停机HLT这类指令只有操作码
  • 子程序返回RET、中断返回IRET这类指令没有地址码,其操作数的地址隐含在堆栈指针SP(实际是寄存器)中

3.3 指令的字长*

  • 指令的长度即为指令字长:操作码字段长度+地址码字段长度

在这里插入图片描述

  • 早期计算机中,指令长度 == 机器字长 == 存储字长

访问某个存储单元即可取出一条完整的指令

  • 随着计算机的发展,现代计算机的机器字长 > 存储字长,而指令长度取字节的整数值

如果按字节编址,访问多个存储单元才可取出一条完整的指令


3.4 定长操作码与扩展码

3.4.1 定长操作码

指令字的最高位部分分配固定的若干位表示操作码


3.4.2 扩展操作码

  • 指令的操作码字段的位数不固定,操作码的长度随地址码的减少而增加
  • 不同地址码指令具有不同长度的操作码,从而在满足需要的前提下有效缩短指令字长

看图悟,BOK老师的图画得特别清晰
在这里插入图片描述
留下1111这种编码作为扩展窗口,和后面的4位组成8位的操作码字段,让机器能够识别出这是二地址指令
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • n地址指令的操作码字段拿出(若干种编码)来表示此时应按n-1地址指令来解释这些编码叫做扩展窗口

注意:扩展操作码一定是从多地址指令往低地址指令去扩展的


3.5 数据在存储器中的存放位置

操作数的一个关键知识点:数据在存储器中的一个存放方式,其实就是边界对齐

3.5.1 不进行边界对齐

  • 每一个数据的起始位置是不做限制的
  • 按字节编址的32位机器:机器字长是32位,即CPU进行一次整数计算的位数是32位

在这里插入图片描述


3.5.2 进行边界对齐

K字节大小的数据起始地址必须是K的整数倍
在这里插入图片描述


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

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

相关文章

FDL专题:如何在工作中对Kettle任务进行迁移?可以直接调用吗?

IT团队历史数据同步任务过去都用的Kettle来开发,但kettle的定时调度不方便,维护成本高,遇到报错不知道怎么办。苦寻CSDN无果,只得在公司留下一个个深夜加班的背影...... IT经理想到:是否能将任务一步步迁移到一个统一…

易保全推动区块链应用与AI融合创新发展

数字化时代,区块链和人工智能技术作为当下两大“黑科技”,两者的深度结合,正在为企业数字化转型带来前所未有的机遇。 易保全作为国内权威的电子数据存证保全机构,积极探索两者的融合之道,将区块链的去中心化、不可篡…

解锁科研新动力,QtiPlot for Mac——您的数据可视化与分析首选工具!

QtiPlot for Mac,一款专为科研工作者和数据分析爱好者打造的数据可视化与分析神器,它如同科研道路上的得力助手,让复杂的数据分析变得简单直观。🔬📈 这款软件拥有强大的数据导入与处理能力,支持多种数据格…

电脑本机ip地址怎么查?介绍几种简单快捷方法

在数字时代,无论是网络连接、远程操作还是设备识别,IP地址都扮演着至关重要的角色。然而,对于许多电脑用户来说,如何快速准确地查找本机IP地址仍然是一个挑战。虎观代理小二将为您详细介绍几种简单快捷的IP地址查询方法&#xff0…

openssh9.8p1的rpm包

openssh9.8p1的rpm包 centos7下的openssh9.8p1rpm包 安装环境:centos7全系列 已经集成所有依赖到rpm包中,直接安装即可 rpm包下载链接 (免积分下载) 安装命令 tar -zxvf centos7_openssh-9.8.tar cd centos7_openssh-9.8 rpm -Uvh --force --nodeps *…

快速了解GPT-4o和GPT-4区别

GPT-4o简介 在5月14日的OpenAI举行春季发布会上,OpenAI在活动中发布了新旗舰模型“GPT-4o”!据OpenAI首席技术官穆里穆拉蒂(Muri Murati)介绍,GPT-4o在继承GPT-4强大智能的同时,进一步提升了文本、图像及语…

VS开发QT程序图标修改

VS开发QT程序图标修改 1.双击打开UI界面 2.选择编辑资源 3.添加文件 4.选择ico文件 5.ok确定 6.点击保存 7.选择windowsIcon,倒三角图标 8.选择资源 9.选择图标,点击ok 10.保存 编译运行: 任务栏:

电脑免费压缩软件app哪个好?Top15压缩软件良心测评,图文详解!

你是否在寻找一款能够帮助你释放电脑存储空间的免费压缩软件app呢?在当今数字化生活中,文件和媒体内容日益增多,而硬盘空间却总是显得不够用。优秀的压缩工具不仅能节省空间,还能提升系统效率,让你的电脑运行更加流畅。…

Arthas实战(2)- OOM问题排查

一、 准备测试应用 新建一个 SpringBoot应用&#xff0c;写一段有 OOM bug 的代码&#xff1a; RestController RequestMapping public class JvmThreadController {List<TestWrapper> memoryList new ArrayList<>();GetMapping("/test")public Strin…

年份与产地:解锁红酒的秘密密码

在红酒的世界里&#xff0c;年份与产地如同两把神秘的钥匙&#xff0c;它们背后隐藏着红酒不同的魅力与秘密。今天&#xff0c;就让我们一起揭开这层神秘的面纱&#xff0c;探寻年份与产地如何为红酒赋予不同的灵魂&#xff0c;特别是以雷盛红酒为例&#xff0c;感受那份从岁月…

十 .pfc,bus纹波分析与抑制方法

以apfc为例 在分析时用 uin 和 iin 表示输入电压和输入电流&#xff0c;uo 和 io&#xff0c;表示输出电压和输出电流&#xff0c;Uin 和 Iin 表示输入电压和输入电流的幅值&#xff0c;则输入电压和输入电流可以分别表示为&#xff1a; 从式&#xff08;3-3&#xff09;可以…

Python28-1 机器学习算法之决策树

决策树&#xff08;Decision Tree&#xff09; 决策树算法是一种常用的机器学习算法&#xff0c;属于监督学习范畴。它可以用于分类和回归任务&#xff0c;具有易于理解和解释的特点。决策树通过递归将数据分割成更小的子集&#xff0c;构建一个树形结构&#xff0c;其中每个节…

KV260视觉AI套件--PYNQ-DPU-Resnet50

目录 1. 简介 2. 代码解析 3. 全部代码展示 4. 总结 1. 简介 本文以 Resnet50 为例&#xff0c;展示使用 PYNQ 调用 DPU 运行 Resnet50 网络的详细过程&#xff0c;并对其中关键代码做出解释。 PYNQ是一个针对Xilinx Zynq平台的Python开发框架&#xff0c;它允许开发者使…

学校教室NTP电子钟时间是如何同步北京时间的?-讯鹏时钟

在学校教室里&#xff0c;NTP 电子钟精准地显示着时间&#xff0c;与北京时间保持高度同步&#xff0c;为师生们提供了可靠的时间参考。那么&#xff0c;它是如何做到这一点的呢&#xff1f; NTP 电子钟能够与北京时间同步&#xff0c;主要依赖于网络时间协议&#xff08;NTP&a…

准化 | 水系统碳中和标准体系初见成效

2024年5月31日&#xff0c;中华环保联合会发布《团体标准公告 2024年第10号&#xff08;总第78号&#xff09;》&#xff0c;批准发布了由中华环保联合会提出并归口的《废水处理温室气体监测技术规程》(T/ACEF 142-2024)、《工业水系统碳排放核算方法与报告指南》(T/ACEF143-20…

数据驱动:Facebook的广告策略与商业模式

在现代数字经济中&#xff0c;数据已经成为新的石油&#xff0c;驱动着企业的增长和创新。Facebook&#xff0c;作为全球最大的社交媒体平台之一&#xff0c;充分利用其庞大的用户数据和先进的算法技术&#xff0c;建立了一个高度精确和高效的广告生态系统。这不仅推动了平台自…

qtreewidget 美化,htmlcss和qss 不是一个概念!已解决

这种样式的美化&#xff0c; 能气死个人&#xff0c;css 一个单词搞定&#xff0c;非要 在qss中。多少个单词不知道了。 m_tree_widget->setStyleSheet("QTreeView{background:transparent; selection-background-color:transparent;}""QTreeView::branch{b…

PyTorch之nn.Module与nn.functional用法区别

文章目录 1. nn.Module2. nn.functional2.1 基本用法2.2 常用函数 3. nn.Module 与 nn.functional3.1 主要区别3.2 具体样例&#xff1a;nn.ReLU() 与 F.relu() 参考资料 1. nn.Module 在PyTorch中&#xff0c;nn.Module 类扮演着核心角色&#xff0c;它是构建任何自定义神经网…

这次发现的开源版本我愿意称之为最具学习价值的商城系统|商城源码点击进入

这是一款我发现的强大、灵活、易用的商城系统&#xff0c;成为我的的首选商城框架&#xff0c;让我的商城开发事半功倍&#xff01;这款开源商城项目具有多元的商业模式满足了任何使用场景的需求。 有S2B2C供应链商城、B2B2C多商户商城、O2O外卖商城、B2C单商户商城、社区团购、…

全网最详细,零基础学会AI绘画Stable Diffusion,学不会来打我!

前言 什么是Stable Diffusion 自从去年10月份Stable Diffusion开源以来&#xff0c;仅过了半年的时间&#xff0c;如今它已经能够创作出精美细致的二次元插画&#xff0c;媲美真人的赛博Coser&#xff0c;以及具有独特风格的AI动画。 无论你只是感兴趣&#xff0c;还是想了解…