是什么

  • 定义条件转移指令是依据标志寄存器(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)。条件转移指令格式如下:

    位 1511 为操作码 00000B;位 10, 9, 8 分别为检测位 C, Z, N;位 70 为相对偏移量 OFFSET(8 位补码)。

    转移目标地址公式为 ;顺序执行时下一条指令地址为

    1. 该计算机向后(反向)最多可转移多少条指令?

    2. 某条件转移指令地址为 ,指令机器码为 00000 011 11100011B

      若执行时 ,执行后 PC 是多少?

      若执行时 ,执行后 PC 是多少?

    3. 实现无符号数“小于或等于时转移”功能,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,避免误按十进制计算)。