是什么
-
定义:条件转移指令是依据标志寄存器(PSW)中的状态标志,动态选择顺序执行()或跳转执行()的控制类指令;数据通路是承载指令和数据在寄存器、ALU、主存之间流动与处理的全部硬件路径及控制逻辑。
-
大白话:条件转移就是硬件级的“
if-else分叉路口”,数据通路则是 CPU 内部四通八达的高速路网和红绿灯(控制信号)。
核心内容
1. 编址方式判定规律
-
核心判断准则:看“指令字长(或数据字长)”与“PC 顺序自增量”的比例关系。
-
按字节编址:每个物理地址对应 1 字节()。
-
指令字长 16 位(2B),顺序执行时 按字节编址。
-
指令字长 32 位(4B),顺序执行时 按字节编址。
-
-
按字编址:每个物理地址对应 1 个机器字(如 或 )。
-
指令字长 16 位,顺序执行时 按字编址。
-
-
2. 条件转移范围与指令数计算
-
补码表示范围: 位相对偏移量(OFFSET)的真值范围为 。
-
反向(向后)最大指令数:
-
反向取负数最大模值:。
-
若目标地址公式为 ,则反向最大字节偏移为 。
-
最大反向转移指令条数:
-
3. 条件判断标志位规则(408 核心考点)
-
无符号数比较(由
CMP A, B即 生成标志):-
-
(无符号减法借位)
-
-
-
-
有符号数比较:
-
看符号位 与溢出位 的异或:。
-
-
-
4. 转移指令数据通路全景图与记忆口诀

🧠 数据通路秒记口诀(按数据流向分两步)
-
主干流水(左侧:取指 译码 执行 结果):
主存取指令(①主存 ③MDR ⑤IR) 指令去解析(⑤IR ⑥ID译码 ⑦CU发信号,⑯节拍器控时序) 算术逻辑做计算(⑧RF通用寄存器 ⑨ALU) 状态留存立标志(产生 ⑩PSW 状态标志:CF/ZF/NF/VF)。
-
分支跳转(右侧:条件判别 地址生成 二选一打入 PC):
IR取偏移(⑤IR中的OFFSET) 位数要对齐(⑪符号扩展 位) 指令转字节(⑫左移一位器 ) 算出目标地(⑬加法器:) 条件裁决二选一(⑭条件判断逻辑结合PSW ⑮MUX多路选择器决定是顺序还是跳转) 回写PC(④PC更新)。
📌 十六大核心部件功能速查
| 编号 | 部件名称 | 考点与功能说明 |
|---|---|---|
| ① | 主存储器 | 存放程序指令代码和运行数据 |
| ② | MAR(地址寄存器) | 暂存送往地址总线 ABUS 的主存物理地址(16位) |
| ③ | MDR(数据寄存器) | 暂存从数据总线 DBUS 读写的主存数据/指令(16位) |
| ④ | PC(程序计数器) | 存放下一条指令地址,可接收 顺序值或转移目标值 |
| ⑤ | IR(指令寄存器) | 暂存当前正在执行的 16 位机器指令 |
| ⑥ | ID(指令译码器) | 对 IR 中的操作码 OP 译码,向 CU 提供操作类型信号 |
| ⑦ | CU(控制器) | 综合指令译码与时序,向全机发出微操作控制信号 |
| ⑧ | RF(通用寄存器组) | 提供运算源操作数(A/B 端),暂存 ALU 运算结果 |
| ⑨ | ALU(算术逻辑单元) | 执行算术加减法或逻辑与或运算 |
| ⑩ | PSW(标志寄存器) | 保存运算产生进位借位(CF)、为零(ZF)、符号(NF)、溢出(VF)标志 |
| ⑪ | 符号扩展器 | 将 8 位补码 OFFSET 扩展为 16 位,保持数值真值不变 |
| ⑫ | 左移一位器() | 指令字偏移转为字节物理偏移(按字节编址且单指令 2B 必须 ) |
| ⑬ | 转移目标加法器 | 计算转移目标物理地址: |
| ⑭ | 条件判断逻辑 | 结合 IR 检测位(C/Z/N)与 PSW 标志判定条件是否满足(输出 1/0) |
| ⑮ | MUX(多路选择器) | 依据条件逻辑输出,二选一将“顺序地址”或“转移目标”接入 PC |
| ⑯ | 时序控制逻辑 | 节拍发生器,产生微操作执行所需的时钟节拍脉冲 |
例题
-
题目:
某计算机采用 16 位定长指令字格式,按字节编址,CPU 包含标志寄存器(CF、ZF、NF)。条件转移指令格式如下:
位 15
11 为操作码0 为相对偏移量00000B;位 10, 9, 8 分别为检测位C, Z, N;位 7OFFSET(8 位补码)。转移目标地址公式为 ;顺序执行时下一条指令地址为 。
问:
-
该计算机向后(反向)最多可转移多少条指令?
-
某条件转移指令地址为 ,指令机器码为
00000 011 11100011B:若执行时 ,执行后 PC 是多少?
若执行时 ,执行后 PC 是多少?
-
实现无符号数“小于或等于时转移”功能,C、Z、N 各应设置为什么?
-
-
分析:
-
第 1 问:OFFSET 为 8 位补码,最小值为 。最大反向字节偏移量为 ,指令长 2 字节,相除得指令数。
-
第 2 问:指令中 (只检测 ZF 和 NF)。OFFSET 为 。
-
情况 1: 命中,触发转移,。
-
情况 2:不检测 CF,ZF 与 NF 均为 0,条件不满足,顺序执行 。
-
-
第 3 问:无符号数 判定条件为产生借位()或结果为零()。
-
-
答案:
1)
2)
-
当 时:
-
当 时:
3)
-
⚠️ 易错点
Warning
指令检测开关 vs PSW 标志状态:条件转移发生的前提是“指令开启了该位检测(如 )”且“PSW 对应标志为 1”。若指令中该位为 0,无论 PSW 标志位为何值均不触发转移。
左移一位器(乘 2)的本质:因为按字节编址且每条指令占 2 字节,OFFSET 表示的是“指令条数偏移”,必须左移 1 位()转化为“主存物理字节地址偏移”。
十六进制借位减法:计算 时,低位 ;高位 (十六进制借 1 当 16,避免误按十进制计算)。