Skip to content

2024年 408 计算机组成原理 第 13 题

计算机组成原理2024年选择题2分

题目

将汇编语言程序中实现特定功能的指令序列定义成一条伪指令。下列选项中,CPU 能理解并直接执行的是( )。

Ⅰ. 伪指令 Ⅱ. 微指令 Ⅲ. 机器指令 Ⅳ. 汇编指令

错因

A

把"伪指令"和"汇编指令"误当成 CPU 直接执行的对象。其实这两者都不是机器码:伪指令(如 ORGEQUDBEND)是给汇编器看的指令,告诉汇编器"在这里设地址"、"定义常量"等,不会被翻译进最终的机器代码;汇编指令(如 ADD R1, R2)是程序员写的助记符源码,必须经汇编器翻译成机器指令后 CPU 才能执行。CPU 只认机器码,不读源码。

C

把"汇编指令"也算成 CPU 直接执行——多半是把"汇编"和"机器"两个概念混了。汇编指令是源码层的助记符(mnemonic),必须先经汇编器翻译成机器指令的二进制位串,CPU 才能在取指阶段读到它。"用汇编写程序"≠"CPU 执行汇编"。

D

把伪指令也算上——可能是把"伪指令"望文生义为"伪装成指令的某种指令"。但伪指令的"伪"恰恰意味着它根本不是 CPU 执行的指令:在汇编阶段就被汇编器消化掉、不会出现在最终的可执行文件里。CPU 在运行时永远不会"取到"一条伪指令。

总解析

四类指令的层次划分

类型谁执行何时存在
伪指令汇编器汇编阶段(不出现在可执行文件)ORG 1000HEQUDBEND
汇编指令程序员/汇编器汇编源码ADD R1, R2, R3
机器指令CPU(取指 → 译码 → 执行)可执行文件中的二进制0x00112023 之类的 32 位编码
微指令CPU 控制器(更细粒度的硬件)CPU 内部控存(ROM)中一组微操作的控制信号

关键判断:CPU 能"理解并直接执行"的,必须是 CPU 硬件层面认识的对象。

  • 机器指令:CPU 通过取指部件从内存读到二进制位串,译码后执行——直接执行 ✓
  • 微指令:每条机器指令在 CPU 内部由一系列微指令驱动的微操作完成。微指令存储在控存中,由微程序控制器在硬件层面"取微指令 → 发控制信号"——也是 CPU 直接执行的 ✓
  • 伪指令、汇编指令:两者都不是机器码,CPU 取指部件根本读不到——汇编阶段它们就被汇编器处理掉了

最终答案是 B(仅 II 和 III)

层次速记

程序员写汇编(含伪指令)→ 汇编器编译成机器指令 → CPU 取指执行; 每条机器指令在 CPU 内部由若干微指令展开成"取数 → ALU → 写回"的微操作序列。

伪指令"消失"在汇编阶段、汇编指令"消失"在翻译阶段;只有机器指令到了 CPU 取指阶段、再被进一步分解为微指令时,硬件才"看见"它们。

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题