Appearance
指令执行过程
考情分析
指令执行过程是选择题和综合题的高频考点。408真题考过"某微操作属于哪个周期""写出某指令的微操作序列",理解每个阶段的数据流是解题关键。
指令周期的四个阶段
一条指令的完整执行经过以下阶段(并非每条指令都有全部四个阶段):
每个阶段称为一个机器周期(也叫CPU周期),每个机器周期由若干个时钟周期(节拍)组成。
取指周期(Fetch Cycle)
任务:从内存中读取指令,送入 IR。
微操作序列:
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 将 PC 内容(指令地址)送入 MAR | |
| 2 | 启动存储器读操作 | |
| 3 | 从内存读指令到 MDR | |
| 4 | 将指令送入指令寄存器 | |
| 5 | 操作码送控制单元译码 | |
| 6 | PC 自增,指向下一条指令 |
间址周期(Indirect Addressing Cycle)
任务:当指令采用间接寻址时,从内存中取出有效地址。
触发条件:指令中的寻址特征位
微操作序列:
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 将指令中的形式地址送 MAR | |
| 2 | 读内存 | |
| 3 | 读出的内容就是有效地址 | |
| 4 | 有效地址送 MAR(准备执行周期访存) |
多重间接寻址时重复上述过程,直至取到最终有效地址。
执行周期(Execute Cycle)
任务:执行指令规定的操作。不同指令的执行周期微操作完全不同。
以几类典型指令为例:
加法指令 ADD X(直接寻址)
| 步骤 | 操作 |
|---|---|
| 1 | |
| 2 | |
| 3 |
存数指令 STA X(将 ACC 内容写入内存 X)
| 步骤 | 操作 |
|---|---|
| 1 | |
| 2 | |
| 3 |
转移指令 JMP X(无条件转移)
| 步骤 | 操作 |
|---|---|
| 1 |
转移指令的执行周期最简单,只需修改 PC 即可。
条件转移指令 BZ X(结果为零时转移)
| 步骤 | 操作 |
|---|---|
| 1 | 若 |
中断周期(Interrupt Cycle)
任务:在每条指令执行结束后,检查是否有中断请求。若有,则保护断点并转入中断服务程序。
微操作序列:
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 关中断(防止保存断点过程被打断) | |
| 2 | 堆栈指针减1,准备压栈 | |
| 3 | 写内存 | |
| 4 | 将 PC(断点地址)压入栈 | |
| 5 | 向量地址 | 转入中断服务程序 |
指令周期流程图
机器周期与时钟周期
- 时钟周期(节拍):CPU 最小时间单位,
- 机器周期:完成一个基本操作(如一次访存)所需的时间,通常包含若干时钟周期
- 指令周期:执行一条完整指令所需时间,通常包含 2~5 个机器周期
考点清单
- 四个周期的顺序:取指 → 间址(可选)→ 执行 → 中断(可选)
- 取指周期结束时 PC 已完成 +1
- 间址周期只在间接寻址时才有
- 中断周期的核心动作:关中断 + 保存断点 + 跳转
- 执行周期的微操作因指令不同而不同,转移指令只需修改 PC
- MAR 和 MDR 是 CPU 与主存之间的接口,所有访存操作都经过它们