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

文章目录

  • 考纲
    • 第四章 指令系统
    • 4.1 指令格式
    • 4.2 指令的寻址方式
    • 4.3 程序的机器级代码表示
    • 4.4 CISC和RISC的基本概念
  • 【※】扩展码指令计算
  • 【※】指令系统【指令格式】
  • 【※】指令的寻址方式
  • 【※】指令的机器级代码表示
    • x86汇编指令(重点关注 intel 格式)
    • MIPS 汇编指令
  • 【※】转移指令的基本过程
  • 【※】解题方法
    • 先观察汇编语⾔,是x86还是MIPS?
    • x86
    • MIPS
  • AT&T vs Intel
  • CISC和RISC

考纲

第四章 指令系统

本章通常在小题中考察,在大题中可能作为题目条件,或者仅作为大题的某个小问来考察。理解本章(特别是4.1、4.2小节)对于读懂计组大题至关重要。王道书的4.3部分(程序的机器级代码表示)是2022年大纲新增的内容。由于涉及到汇编语言相关知识,因此该部分对跨考同学来说是一块硬骨头。但请大家放心,计组这门课不会深入考察汇编语言,你只需要有个大致的了解,能看懂题目里出现的汇编语言指令即可,不要求你具备手写汇编语言的能力。

4.1 指令格式

  • 本节常在小题中考察,或者作为大题的一个小问考察
  • 本节难点是“扩展操作码指令格式”,需通过课后习题体会其考法

4.2 指令的寻址方式

  • 第四章最重要的一个小节,历年真题中,小题考察过9次,大题考察过5次,值得多花时间
  • 在学习进度打卡表中,为大家挑选了几个必做大题,需认真完成,有助于你深入理解各种寻址方式

4.3 程序的机器级代码表示

  • 本节是2022年大纲新增考点,但事实上,2017年、2019年就已考过。因此严格来说,这个考点不算全新考点。本科阶段没学过“汇编语言”的同学,建议先看视频、再看王道书,直接硬啃书可能很难理解。
  • 2017年、2019年的两个题目已收录在王道书4.3课后习题里,非常具有代表性。由于两个大题也考察了其他章节的知识,因此第一轮复习中可能会看不懂题目,这很正常,莫慌。强化阶段,我们会一起研究这两个题目。
  • 汇编语言指令需要能手写吗?——不需要。这门课是“计组”,而不是“汇编语言”,不要求你手写。只要你在题目里看见一条指令,能大致猜出其作用即可。大家可以在一张纸上把课本里的这些汇编指令分类抄下来,但不加注释,以后偶尔拿出来看一眼,看看能不能回忆起每条指令作用,如果回忆不起来,再回去课本里复习。
  • 条件转移指令的底层原理很重要,经常结合第二章“CF/SF/ZF/OF标志位的生成”来考察,在视频里会给大家详解介绍,需认真理解。

4.4 CISC和RISC的基本概念

  • 本节通常考小题,低频考点,重点理解两种指令集之间的区别即可
  • 随着第五章的学习,大家对CISC和RISC的理解会更具体,因此第一轮复习时对本节的一些知识点感觉比较模糊也没关系,第二轮再次复习效果会更好。

【※】扩展码指令计算

指令长度为 n 位,每个地址占 t 位。有 a 条零地址指令,b 条一地址指令,c 条二地址指令,d 条三地址指令,则有式子:
a + b × 2 t + c × 2 2 t + d × 2 3 t ≤ 2 n a + b \times 2^t + c \times 2^{2t} + d \times 2^{3t} \leq 2^n a+b×2t+c×22t+d×23t2n

考试考查:

题型一:求 x 地址指令条数
题型二:求指令长度 n,或地址字段位数 t

【※】指令系统【指令格式】

在这里插入图片描述

【※】指令的寻址方式

在这里插入图片描述
常考点

  • 速度方面:立即寻址 > 寄存器寻址 > 直接寻址 > 寄存器间接寻址 > 间接寻址

  • 基址寻址和变址寻址的区别

基址寻址变址寻址
有效地址EA = (BR) + AEA = (IX) + A
寄存器内容由操作系统或管理程序确定由用户设定
程序执行过程中值是否可变不可变可变
特点多用于多道程序设计和编制浮动程序有利于处理数组问题和编制循环程序
  • 程序控制是靠转移指令而非寻址方式实现的。
  • 简化地址结构的基本方法是尽量采用隐地址。
  • 指令寻址的方式有顺序和跳跃两种,采用跳跃寻址方式可以实现程序的无条件转移和条件转移。
  • 指令字表示一条指令的机器字,就称为指令字,通常简称指令。

【※】指令的机器级代码表示

x86汇编指令(重点关注 intel 格式)

在这里插入图片描述

MIPS 汇编指令

在这里插入图片描述

【※】转移指令的基本过程

取指令

  • 根据 PC 取出本条指令
  • 修改 PC 为顺序执行的下一条指令地址
    • (PC) + “1” -> PC

分析指令

  • 检测转移条件是否满足

执行指令

  • 大前提:PC 已经 + “1” 了
  • 若条件满足,则转移,修改 PC 为目标地址
    • 按字节编址【CISC|RISC】:(PC) + 指令字长 × OFFSET(指令条数)
    • 按字编址【RISC】:(PC) + OFFSET,此时指令条数 = OFFSET / 指令字长
    • PS:CISC 指令集一定是按字节编址的(因为指令的字长不固定)
    • OFFSET 是用补码进行表示
  • 若条件不满足,则不转移,不需要修改 (PC)

具体某条转移指令的目标地址范围

  • 已知具体 (PC),分析出 A 的取值范围为 a1 ~ a2
  • 则目标地址范围为 (PC) + a1 ~ (PC) + a2

转移指令的目标地址范围

  • 分析 (PC) 和 A 各自的取值范围,得到范围1;
  • 分析存储器的地址范围,得到范围2;
  • 取范围1和范围2的交集。

【※】解题方法

先观察汇编语⾔,是x86还是MIPS?

在这里插入图片描述

x86

  • 先搞懂 C 语言
  • 基于 C 语言的逻辑分析机器指令
    • 分支结构:jxxx 指令
    • 循环结构:jxxx 指令、loopxxx 指令
    • 函数调用:call 指令、ret 指令
    • 需不需要访问函数调用参数?观察在汇编语言中如何访问调用参数?
      • 函数调用参数一般在 [ebp+8]、[ebp+12] 等位置
    • 需不需要定义局部变量?观察在汇编语言中如何访问局部变量?
      • 局部变量的存储地址一般在 [ebp-4]、[ebp-8]、[ebp-12] 等位置

MIPS

  • 先搞懂 C 语言

  • 基于 C 语言的逻辑分析机器指令

    • 有没有分支结构?
    • 有没有循环结构?
    • 有没有函数调用?
  • 考不考流水线?

    • 对指令进行分类:五类指令,每一类指令的运行原理要搞清楚
    • 安排指令流水线
    • 分析数据冒险、控制冒险

AT&T vs Intel

在这里插入图片描述
在这里插入图片描述

CISC和RISC

在这里插入图片描述

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

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

相关文章

Jmeter参数化的 4 种方式用法总结

参数化就是用变量代替数据的过程,总结参数化的4种方式: 1、用户自定义变量 用户自定义变更有两种方法: (1)在测试计划面板中的用户定义的变量设置 说明:在此用户定义的变量对所有测试计划都会生效 &…

如何通过Linux pciehp sysfs接口控制PCIe Slot电源状态?-3

pciehp sysfs接口电源控制与NVME驱动卸载的区别 从NVMe SSD设计本身而言,当通过pciehp sysfs接口对PCIe插槽执行Power Off操作时,由于NVMe SSD作为PCIe设备,其电源供应是直接依赖于所连接的PCIe插槽提供的。当插槽电源被关闭时,会…

#382. 工资计算系统(继承和派生)

水个文 代码如下&#xff1a; #include <cstdio> #include <cstdlib> #include <iostream> using namespace std;const double RATIO 0.01; const double SALARY_PER_YEAR 35; const double BASE_SALARY 1000;// class Employer{ public:int workAge, sa…

【多线程】单例模式 | 饿汉模式 | 懒汉模式 | 指令重排序问题

文章目录 单例模式一、单例模式1.饿汉模式2.懒汉模式&#xff08;单线程&#xff09;3.懒汉模式&#xff08;多线程&#xff09;改进 4.指令重排序1.概念2.question:3.解决方法4总结&#xff1a; 单例模式 一、单例模式 单例&#xff0c;就是单个实例 在有些场景中&#xff0c…

蓝色系UX/UI设计求职面试作品集模版figmasketchPPT可编辑源文件

页面数量: 20P 页面尺寸:1920*1080PX 交付格式&#xff1a;figma、sketch、PPT 赠送文件&#xff1a;24款高质量样机&#xff08;PSD格式&#xff09; 该作品集虽然只有20页&#xff0c;但可根据需求复制作品集里已有的页面作为模版来扩展您的设计项目 该作品集模版可编辑可修…

设计模式在芯片验证中的应用——策略

1. 策略模式 策略模式是一种行为设计模式&#xff0c; 它能让你定义一系列算法&#xff0c; 并将每种算法分别放入独立的类中&#xff0c; 以使算法的对象能够相互替换。 在RTL设计中可能包含了复杂的多个访问仲裁逻辑&#xff0c;使用了多种算法来确定访问内存优先级顺序&am…

【CMake】CMake从入门到实战系列(九)——CMake中的字符串处理指令和运算符

文章目录 一、字符串处理指令string基本语法参数含义 二、字符串运算符字符串比较字符串连接字符串替换字符串长度字符串截取字符串转换大小写字符串正则表达式匹配和替换字符串查找子字符串字符串中查找正则表达式匹配的内容字符串附加 三 、示例 一、字符串处理指令string 在…

【Git教程】(十)版本库之间的依赖 —— 项目与子模块之间的依赖、与子树之间的依赖 ~

Git教程 版本库之间的依赖 1️⃣ 与子模块之间的依赖2️⃣ 与子树之间的依赖&#x1f33e; 总结 在 Git 中&#xff0c;版本库是发行单位&#xff0c;代表的是一个版本&#xff0c;而分支或标签则只能被创建在版本库这个整体中。如果一个项目中包含了若干个子项目&#xff0c;…

【Java】图片处理工具ImageMagick简介及其在Java中的应用

ImageMagick是一款强大的图像处理软件&#xff0c;它可以用于创建、编辑、合并和转换图像。它支持超过200种图像格式&#xff0c;并且提供了丰富的功能&#xff0c;包括图像缩放、旋转、裁剪、加水印、添加特效等。ImageMagick还支持批量处理图像&#xff0c;可以通过命令行或者…

PUBG绝地求生加速器用哪个好 最新带来绝地求生好用的加速器推荐

PUBG绝地求生加速器用哪个好 最新带来绝地求生好用的加速器推荐 绝地求生作为一款非常流行的游戏&#xff0c;吸引了全球亿万玩家的关注。相信大部分玩家都曾经在游戏中遇到过卡顿掉帧以及无法连接服务器的情况&#xff0c;&#xff0c;这对于游戏体验来说是非常不好的。今天…

上位机图像处理和嵌入式模块部署(用树莓派4b开发固件)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 嵌入式开发的领域其实很广&#xff0c;有上位机、驱动和bsp移植。较早之前&#xff0c;由于自己曾经在芯片公司上班&#xff0c;所以对uboot、linu…

Ant Design 表单基础用法综合示例

Ant Design 的表单组件设计得非常出色,极大地简化了表单开发的复杂度,让开发者能够快速构建出功能丰富、交互友好的表单界面。 接下来总结一下 Ant Design 中表单的基本用法。 Form 组件 用于定义整个表单,可以设置表单的布局方式、提交行为等。通常会将表单字段组件嵌套在 F…