计算机组成原理第四章 指令系统
课程脉络前置说明第二章运算器加减乘除、移位运算硬件实现第三章存储器数据存储、CPU 访存原理第四章指令系统本章—— 控制器如何解析指令、指令格式分类、扩展操作码、指令寻址第五章控制器硬件工作原理程序运行逻辑高级语言→编译→机器指令 数据存入主存→CPU 逐条执行机器指令控制器核心功能解析指令、调度计算机各部件协同工作。一、指令基础概念1.指令、指令系统指令集机器指令指示计算机执行操作的命令程序运行最小功能单元。指令系统 / 指令集一台计算机全部指令的集合。架构差异不同 CPU 架构指令集不兼容x86英特尔 PC、ARM手机、新款苹果电脑PC 软件无法直接在手机运行根源是指令集不同。指令逻辑组成操作码 OP 地址码 A操作码 OP指明执行什么操作乘法、停机、取数等地址码 A指明操作的数据存在哪个存储单元特例停机指令仅需操作码无地址码2. 符号约定(A)地址 A 对应的存储单元内的数据类似 C 语言指针取值。二、按地址码数量分类指令0~4 地址指令一0 地址指令仅 OP无地址码两种使用场景无操作数指令停机、关中断、空操作NOP不需要数据参与运算。堆栈型计算机运算指令操作数隐含存放在栈顶、次栈顶运算逻辑扫描后缀表达式读到数字压栈读到 0 地址运算指令弹出栈顶两数运算结果压回栈顶。特点指令不显式写出操作数地址。二1 地址指令OP A1单地址指令两种场景场景 1一元运算仅 1 个操作数求反、自增、求补执行流程3 次访存1.访存取本条指令2. 访存读出 (A1)3. 运算后写回 A1运算公式OP (A1) → A1场景 2二元运算一个操作数隐含在累加器 ACC高频考点运算公式(ACC) OP (A1) → ACC执行流程仅 2 次访存1.访存取指令2. 访存读取 (A1)结果存入 ACC无需写内存。三2 地址指令OP A1 A2适用加减乘除等二元运算两个操作数分别存于 A1、A2运算规则(A1) OP (A2) → A1结果覆盖 A1 原值访存次数4 次1.取指令2. 读 A13. 读 A24. 结果写回 A1四3 地址指令OP A1 A2 A3运算规则(A1) OP (A2) → A3优势单独地址存放结果不会覆盖原始操作数访存取指令、读 A1、读 A2、写 A3共 4 次访存。五4 地址指令OP A1 A2 A3 A41.运算逻辑同 3 地址(A1) OP (A2) → A32.新增 A4 功能指明下一条指令地址执行完本条指令直接将 PC 修改为 A4实现跳转替代 PC 自增。补充地址码位数影响指令总长度固定时地址码数量越多单个地址码占用比特越少寻址范围2N越小寻址能力变弱。三、按指令总长度指令字长分类1.三大字长区分易混对比机器字长CPU 固定属性通用寄存器位数CPU 单次处理数据宽度存储字长主存固定属性一个存储单元二进制位数等于 MDR 位数指令字长单条指令总比特长度同一台机器可长可短可变2. 指令长度命名以机器字长为基准划分半字长指令、单字长指令、双字长指令例机器字长 16bit存储字长 16bit双字长指令 32bit取指需要2 次访存取指速度更慢。3. 两种指令字结构定长指令字结构全部指令长度完全相等取指逻辑简单硬件易实现。变长指令字结构不同指令长度不同硬件译码复杂但空间利用率高。四、按操作码长度分类1.定长操作码所有指令 OP 比特数固定N 位 OP 最多支持2N条指令。优点控制器译码电路简单缺点指令拓展灵活性差。2. 可变长操作码操作码位数随指令地址数变化典型应用扩展操作码指令格式。•特点定长指令字 可变长度 OP在有限指令总长度下容纳 0/1/2/3 地址多种指令。五、扩展操作码重难点计算题核心1.核心定义指令总比特固定不额外增加指令长度短地址指令让出地址位扩充操作码实现多类型指令共存。2. 设计两大硬性规则必背短操作码不能是长操作码的前缀防止译码歧义类比哈夫曼前缀编码所有指令操作码不能重复。3. 设计优化技巧使用频率高的指令分配更短操作码缩短译码时间提升 CPU 运行效率。4. 基础计算逻辑设每个地址码占 N 比特上层预留 M 个扩展状态则下一层最多可扩展 M×2N条指令。标准举例指令字长 16 位每个地址 4bit3 地址指令3 个地址占 12bitOP 仅 4bit共2416种预留1111作为扩展位最多 15 条 3 地址指令。2 地址指令前 4 位固定1111剩余 4bit 做 OP共 16 种状态预留全 1 状态继续扩展。1 地址指令前 8 位固定全 1剩余 4bit 做 OP预留全 1 状态。0 地址指令前 12 位全 1最后 4 位全部用作 OP无后续扩展最多 16 条。5. 优缺点✅优点固定指令长度下支持丰富多类型指令空间利用率高❌缺点操作码长度不统一译码电路复杂控制器硬件设计难度上升六、按指令操作类型分类四大类1.数据传送类主存 ↔ CPU 寄存器数据搬运例LOD 取数内存→寄存器、存数指令寄存器→内存。2.运算类•算术运算加减乘除•逻辑运算与、或、非、异或•移位运算算术移位、逻辑移位、循环移位第二章知识点。3.程序控制类转移指令改变程序执行顺序本质修改 PC程序计数器的值包含无条件跳转 JMP、条件转移、函数调用 / 返回、Trap 陷入指令。4.输入输出 (I/O) 类实现 CPU 寄存器与 IO 端口之间的数据交换外设交互专用。七、指令寻址确定下一条指令地址基础硬件PC 程序计数器PC 永远存放下一条待执行指令的主存地址每次取完一条指令PC 自动自增自增量不固定。两类寻址方式1.顺序寻址默认执行方式程序逐条连续执行取指后 PC 自动增加固定长度增量由两个条件决定1编址方式按字编址 / 按字节编址2指令字长定长 / 变长•场景 1按字编址、定长指令 存储字长PC 每次 1•场景 2按字节编址、定长指令占 2 字节PC 每次 2•场景 3按字节编址、变长指令CPU 先读取指令首字解析操作码判断本条指令总字节 NPC N2. 跳跃寻址转移指令触发遇到程序控制类指令JMP、CALL 等直接手动修改 PC 的值跳过中间指令改变执行流。示例执行 JMP 7取指令后 PC 原本自增为 4执行跳转指令后强制 PC7下一条执行地址 7 的指令。关键易错总结1.PC 存放下一条指令地址不是当前正在执行的指令2.“PC1” 是简写代表加上一条指令的总长度数值不一定是 13.顺序寻址靠硬件自动自增 PC跳跃寻址靠指令主动改写 PC。八、全章节易混考点汇总1.单地址指令 ≠ 单字长指令单地址指令地址码数量单字长指令占用机器字个数两个维度互不绑定。2.机器字长固定指令字长可变3.扩展操作码核心限制短码不能为长码前缀4.访存次数记忆0 地址堆栈运算无额外访存单地址一元运算 3 次访存、二元 ACC 运算 2 次访存二地址 4 次访存5.地址码位数 N寻址范围 2N指令总长固定时地址越多寻址范围越小。6.架构不兼容根源x86 与 ARM 指令集完全不同。

相关新闻

OpenDevin:从AI代码补全到自主任务执行的AI软件工程师实践

OpenDevin:从AI代码补全到自主任务执行的AI软件工程师实践

最近,一个名为“Jason Liu”的开发者账号在社交媒体上分享了一组截图,展示了一个名为“OpenDevin”的AI编程工具,其界面和功能引发了技术圈的广泛讨论。很多人第一反应是:“这不就是另一个AI代码补全工具吗?” 但如果你…

2026/10/12 9:12:08 阅读更多 →
TDE 的密钥存在哪?KSP+HSM 国密密钥管理 + DBG 网关双重权限实战

TDE 的密钥存在哪?KSP+HSM 国密密钥管理 + DBG 网关双重权限实战

一、一个常见误区:把密钥写进配置文件 很多自研加密方案的翻车点,是把密钥(或密钥的加密口令)明文写在应用配置里。攻击者一旦拿到配置文件,加密形同虚设。正确的做法遵循“数据与密钥分离、密钥与根密钥分离”的分层原…

2026/10/13 22:04:47 阅读更多 →
C++20协程对称传输技术解析与性能优化

C++20协程对称传输技术解析与性能优化

1. 项目概述:当协程遇上栈溢出危机去年重构一个高频交易引擎时,我遭遇了职业生涯最诡异的崩溃——系统在压力测试中随机出现栈溢出,但调用栈显示深度始终不超过10层。经过72小时不眠不休的排查,最终锁定问题根源:异步协…

2026/10/11 20:05:39 阅读更多 →

最新新闻

MoE稀疏激活与FP8量化:本地大模型轻量化的实战指南

MoE稀疏激活与FP8量化:本地大模型轻量化的实战指南

1. 项目概述:一场没有硝烟的七日技术风暴“国庆七天,AI圈没一天消停”——这句话不是夸张修辞,而是过去七年里我持续追踪AI产业动态过程中,头一回在长假期间亲眼见证的、真正意义上的“全周期高强度技术迭代现场”。它不像往年那样…

2026/10/13 22:04:47 阅读更多 →
PSO+SA混合优化算法实战:非凸问题高精度求解指南

PSO+SA混合优化算法实战:非凸问题高精度求解指南

简介:本资源为PSO与模拟退火(SA)融合算法的MATLAB实现包,面向智能优化方向的本科生、研究生及算法工程师,聚焦解决复杂多模态函数优化中易陷局部最优、收敛精度不足等典型问题。压缩包共9个文件(5个核心m脚…

2026/10/13 22:04:47 阅读更多 →
谷歌Agent Skill设计模式实战:从工具调用到规划型,5种模式提升生产稳定性

谷歌Agent Skill设计模式实战:从工具调用到规划型,5种模式提升生产稳定性

1. 从“能跑通”到“跑得稳”:Agent Skill 设计模式到底在解决什么问题很多人第一次接触 Agent 开发时,都会经历一个相似的阶段:写一个能调用工具的循环,接上大模型,跑通一个“查天气”“搜资料”“发邮件”的 Demo&am…

2026/10/13 22:04:47 阅读更多 →
种子填充算法详解:从递归实现到扫描线优化

种子填充算法详解:从递归实现到扫描线优化

计算机图形学课程做到实验四,很多同学的卡点已经从“直线怎么画”变成了“一个多边形怎么填满”。前几次实验跑通了点、线、圆这些基本图元之后,到这一步要处理的不再是一条条轮廓线,而是一块块有边界的区域。种子填充算法就是这条线路上最直…

2026/10/13 22:04:47 阅读更多 →
语义词谜游戏设计:绕过拼写训练词汇提取能力

语义词谜游戏设计:绕过拼写训练词汇提取能力

1. 项目概述:当词典变成游戏界面,我们到底在玩什么? “Show HN: Wick, a daily word game where you guess by meaning, not spelling”——这个标题一出现,我就在某开发者社区的首页多刷了三遍。不是因为它的UI有多炫&#xff0c…

2026/10/13 22:04:47 阅读更多 →
Python Plotly交互式数据可视化:从快速出图到精细定制

Python Plotly交互式数据可视化:从快速出图到精细定制

做数据分析的同学都有一个共同感受:数据算完之后,最头疼的不是处理逻辑,而是怎么把结果变成一张别人一眼能看懂的图。这两年我用得最顺手的工具就是 Plotly,一个典型的 Python 交互式绘图库。用 Plotly 创建交互式图表&#xff0c…

2026/10/13 22:03:47 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →