一、单项选择题
01. 下列部件不属于控制器的是( C )。
题目原文
- 下列部件不属于控制器的是( )。
A. 指令寄存器
B. 程序计数器
C. 程序状态字寄存器
D. 时序电路
正确答案:C
题目解析
- 考点分析: 本题考察CPU中控制器(Control Unit, CU)的基本组成。CPU由控制器和运算器(ALU)组成,需要明确各部件的归属。
- 正确选项分析 (C. 程序状态字寄存器): 程序状态字寄存器(Program Status Word, PSW),也称标志寄存器,主要用于存放算术逻辑运算结果的状态信息(如零标志ZF、进位标志CF)和控制CPU工作方式的控制标志。因为其内容(特别是状态标志)是运算器执行运算后直接产生的,所以在经典的冯·诺依曼结构划分中,PSW被归类为运算器的组成部分,而非控制器。
- 错误选项分析:
- A. 指令寄存器 (IR): 控制器的核心部件,用于存放当前从主存中取出的、正在执行的指令。指令的译码就是对IR中的内容进行的。
- B. 程序计数器 (PC): 控制器的核心部件,用于存放下一条将要执行指令的地址,控制着程序的执行流程。
- D. 时序电路: 控制器的核心部件,也叫时序控制单元,它产生CPU工作所需的各种时序信号,指挥计算机各部件按规定的时间顺序协调工作。
02. 通用寄存器是( D )。
题目原文
02. 通用寄存器是( )。
A. 可存放指令的寄存器
B. 可存放程序状态字的寄存器
C. 本身具有计数逻辑与移位逻辑的寄存器
D. 可编程指定多种功能的寄存器
正确答案:D
题目解析
- 考点分析: 本题考察通用寄存器(General-Purpose Register, GPR)的定义和功能。
- 正确选项分析 (D. 可编程指定多种功能的寄存器): “通用”的核心含义在于其用途不是固定的,而是灵活的。程序员(或编译器)可以通过指令来决定通用寄存器的用途,例如用作存放操作数、运算的中间结果,或者存放地址(作为基址、变址、指针等)。这种由程序指令来指定其功能的特性,就是其“通用性”的体现。
- 错误选项分析:
- A. 可存放指令的寄存器: 这是指令寄存器(IR) 的专属功能。
- B. 可存放程序状态字的寄存器: 这是程序状态字寄存器(PSW) 的专属功能。
- C. 本身具有计数逻辑与移位逻辑的寄存器: 寄存器是存储部件。计数、移位等运算功能是由运算器(ALU) 实现的。ALU可以对通用寄存器中的数据进行操作,但通用寄存器本身不内嵌这些复杂逻辑。
03. CPU中保存当前正在执行指令的寄存器是( A )。
题目原文
03. CPU中保存当前正在执行指令的寄存器是( )。
A. 指令寄存器
B. 指令译码器
C. 数据寄存器
D. 地址寄存器
正确答案:A
题目解析
- 考点分析: 本题考察指令执行流程中各寄存器的作用,特别是指令寄存器(IR)的功能。
- 正确选项分析 (A. 指令寄存器): CPU执行指令的第一步是“取指”,即根据PC的地址从内存中取出指令。这条被取出的、即将被译码和执行的指令,就被存放在指令寄存器(IR) 中。因此,IR是保存“当前正在执行指令”的寄存器。
- 错误选项分析:
- B. 指令译码器 (ID): 它是一个组合逻辑电路,不是寄存器。其功能是分析IR中的指令,而不是保存指令。
- C. 数据寄存器: 泛指存放操作数或运算结果的寄存器(如通用寄存器、MDR),不存放指令。
- D. 地址寄存器: 泛指存放地址的寄存器(如PC、MAR),不存放指令。
04. 在CPU中,跟踪后继指令地址的寄存器是( B )。
题目原文
04. 在CPU中,跟踪后继指令地址的寄存器是( )。
A. 指令寄存器
B. 程序计数器
C. 地址寄存器
D. 状态寄存器
正确答案:B
题目解析
- 考点分析: 本题考察程序计数器(PC)的核心功能。
- 正确选项分析 (B. 程序计数器): 程序计数器(PC)的唯一功能就是存放下一条将要执行的指令的内存地址。每当CPU取走一条指令后,PC的内容就会自动更新(增加一个指令长度或跳转到新地址),指向下一条指令。因此,它起到了“跟踪”程序执行流程、指示“后继指令”的作用。
- 错误选项分析:
- A. 指令寄存器 (IR): 存放当前正在执行的指令。
- C. 地址寄存器 (AR): 泛称。特指MAR时,它存放当前要访问的内存地址,不具备自动跟踪后继指令的功能。
- D. 状态寄存器 (PSW): 存放运算状态,与指令地址无关。
05. 条件转移指令执行时所依据的条件来自( B )。
题目原文
05. 条件转移指令执行时所依据的条件来自( )。
A. 指令寄存器
B. 状态寄存器
C. 程序计数器
D. 地址寄存器
正确答案:B
题目解析
- 考点分析: 本题考察条件转移指令的判断依据。
- 正确选项分析 (B. 状态寄存器): 条件转移指令(如“结果为零则跳转”)的执行依赖于上一次算术或逻辑运算的结果。这些结果的特征(如是否为零、有无进位等)被保存在状态寄存器(PSW) 的各个标志位中。CPU执行条件转移指令时,会检测PSW中的特定标志位来决定是否进行跳转(即修改PC的值)。
- 错误选项分析:
- A. 指令寄存器 (IR): IR中存放了条件转移指令本身,它指明了“要判断什么条件”,但判断的“依据”(即那个条件是真是假)来自PSW。
- C. 程序计数器 (PC): PC是条件转移指令作用的对象(如果条件满足,PC的值会被修改),而不是条件的来源。
- D. 地址寄存器 (MAR): 用于内存寻址,与逻辑判断无关。
06. 在所谓的 n 位 CPU 中,n 是指( B )。
题目原文
06. 在所谓的 n 位 CPU 中,n 是指( )。
A. 地址总线线数
B. 数据总线线数
C. 控制总线线数
D. I/O 线数
正确答案:B
题目解析
- 考点分析: 本题考察CPU“位数”(字长)的定义。
- 正确选项分析 (B. 数据总线线数): CPU的“位数”通常指其字长(Word Size),主要由以下几个相互关联的指标定义:1)ALU一次能处理的二进制数据位数;2)CPU内部通用寄存器的位数。而CPU与外界(如内存)一次交换数据的能力,由数据总线的宽度决定。这三者在设计上通常是一致的。因此,n位CPU的n最直接地对应其数据总线的线数。
- 错误选项分析:
- A. 地址总线线数: 决定CPU的最大寻址空间(2^地址线数),与CPU处理数据的能力(位数)是两个不同的概念。
- C. 控制总线线数: 与CPU位数没有直接的固定关系。
- D. I/O 线数: 不作为衡量CPU位数的标准。
07. 在CPU的寄存器中,( C )对用户是透明的。
题目原文
07. 在CPU的寄存器中,( )对用户是透明的。
A. 程序计数器
B. 状态寄存器
C. 指令寄存器
D. 通用寄存器
正确答案:C
题目解析
- 考点分析: 本题考察CPU寄存器的“用户可见性”。“对用户透明”意味着程序员不能通过指令来直接读写该寄存器,其操作由硬件自动完成。
- 正确选项分析 (C. 指令寄存器): 指令寄存器(IR)用于存放从内存取来的指令。这个过程(取指到IR、译码IR)完全由CPU硬件自动控制,程序员编写的任何指令都不能访问IR。因此,IR对用户是透明的。类似的透明寄存器还有MAR、MDR。
- 错误选项分析:
- A. 程序计数器 (PC): 用户可以通过转移、调用指令来修改PC,控制程序流程,因此PC对用户可见。
- B. 状态寄存器 (PSW): 用户可以通过条件转移指令读取其状态,也可以用特定指令修改某些标志位,因此PSW对用户可见。
- D. 通用寄存器: 这是程序员最直接操作的寄存器,用于存放数据和地址,完全对用户可见。
08. 指令( )从主存中读出。
题目原文
08. 指令( )从主存中读出。
A. 总是根据程序计数器读出
B. 总是在程序计数器中
C. 有时根据程序计数器,有时根据转移指令
D. 有时根据程序计数器,有时根据地址寄存器
正确答案:A
题目解析
- 考点分析: 本题考察CPU取指令的工作原理。
- 正确选项分析 (A. 总是根据程序计数器读出): CPU获取指令的唯一途径,就是在“取指周期”内,将程序计数器(PC) 的内容送到地址总线,然后从该地址处的主存单元中读取指令。无论程序是顺序执行还是发生跳转,PC中始终存放着下一条待取指令的正确地址。因此,取指令这个动作本身,总是以PC的内容为依据的。
- 错误选项分析:
- B. 总是在程序计数器中: PC中存放的是指令的地址,而不是指令本身。
- C. 有时根据程序计数器,有时根据转移指令: 这是一个迷惑项。转移指令的作用是修改PC的值,修改之后,CPU下一次取指令仍然是根据PC中的新值去取。取指令的动作源头始终是PC。
- D. 有时根据程序计数器,有时根据地址寄存器: “地址寄存器”太宽泛。如果是指MAR,那么MAR的值是来自PC的。如果是指其他地址寄存器,它们通常用于取操作数,而不是取指令。
09. 程序计数器(PC)属于( B )。
题目原文
09. 程序计数器(PC)属于( )。
A. 运算器
B. 控制器
C. 存储器
D. ALU
正确答案:B
题目解析
- 考点分析: 本题再次考察CPU内部件的归属。
- 正确选项分析 (B. 控制器): 程序计数器(PC)的核心功能是控制指令的执行顺序,它与指令寄存器(IR)、时序电路等一起构成了控制器。控制器的职责就是“取指令、分析指令、执行指令”,而PC正是“取指令”这一环节的起点。
- 错误选项分析:
- A. 运算器 & D. ALU: 运算器(ALU)负责执行算术和逻辑运算,处理的是数据。PC处理的是指令地址。
- C. 存储器: 存储器是CPU外部的独立部件,用于存放程序和数据。PC是CPU内部的一个寄存器。
10. 下面有关数据通路(PC)的叙述中,错误的是( C )。
题目原文
10. 下面有关程序计数器(PC)的叙述中,错误的是( )。
A. PC中总是存放指令的地址
B. PC的值由CPU在执行指令过程中进行修改
C. PC的位数一般和存储器地址寄存器(MAR)的位数一样
D. 执行转移指令时,PC的值是转移指令的目标地址
正确答案:C
题目解析
- 考点分析: 本题综合考察对PC功能、修改方式和位宽的理解,要求找出错误的描述。
- 错误选项分析 (C. PC的位数一般和存储器地址寄存器(MAR)的位数一样): 这个说法不一定正确,因此是“错误的叙述”。
- MAR的位数决定了CPU的最大寻址空间(例如32位MAR对应4GB寻址空间)。
- PC的位数虽然也与寻址空间相关,但它可能小于MAR的位数。一个典型的例子是“按字对齐”(如第24、26题),如果指令按4字节对齐,指令地址的低2位总是00,PC就可以省略这2位,其位数会比MAR少2位。因此,“一般一样”这个说法不够严谨,是错误的。
- 正确选项分析:
- A. PC中总是存放指令的地址: 这是PC的定义,存放下一条待执行指令的地址。正确。
- B. PC的值由CPU在执行指令过程中进行修改: 顺序执行时PC自动增加指令长度;执行转移指令时PC被修改为目标地址。正确。
- D. 执行转移指令时,PC的值是转移指令的目标地址: 这是转移指令的功能。更准确地说是,执行完转移指令后,PC的值会变成目标地址。在执行过程中,PC会被更新。这个描述基本正确。
11. 程序计数器(PC)可以用于字节地址或字地址,其位数取决于( B )。
I. 存储器的容量 II. 机器字长 III. 指令字长
题目原文
11. 程序计数器(PC)可以用于字节地址或字地址,其位数取决于( )。
I. 存储器的容量 II. 机器字长 III. 指令字长
A. I和II
B. I和III
C. I和III
D. I, II和III
正确答案:B (题目选项A和C重复,假定B为I和II,C为I和III)
按您给的答案,正确答案是B。我们将分析为什么是I和III。
- 考点分析: 本题考察影响PC宽度的因素。
- 正确选项分析 (B. I和III):
- I. 存储器的容量: 这是决定PC宽度的最根本因素。PC必须有足够的位数来指向存储器中的任何一个位置。例如,4GB的存储容量(2^32字节)至少需要32位的地址,因此PC的宽度基础就是32位。
- III. 指令字长: 指令字长影响PC的寻址单位和增量。如果指令字长是定长的(如32位),且按字节编址,PC的增量就是4。如果指令字长是可变的,PC的增量也会变化。更重要的是,如果计算机系统设计为按指令寻址(而不是按字节寻址),那么PC的宽度就取决于存储器能容纳多少条指令,即
存储器容量 / 指令字长
。在这种情况下,指令字长直接影响PC的位数。因此,I和III是决定PC位数的关键因素。
- 错误选项分析:
- II. 机器字长: 机器字长(CPU一次处理数据的位数)与PC位数没有必然的直接关系。例如,一个16位的CPU(机器字长16)可以有20位的地址总线和PC(如8086)。虽然在很多现代CPU中,字长和地址宽度恰好相同(如32位CPU配32位地址),但这并非一个决定性的依赖关系。PC的宽度服务于寻址,而机器字长服务于数据处理。
12. 下列关于程序计数器PC的叙述中,错误的是( B )。
题目原文
12. 下列关于程序计数器PC的叙述中,错误的是( )。
A. 机器指令中不能显式地使用PC
B. 指令顺序执行时,PC值是自动加1
C. 调用指令执行后,PC值一定是被调用过程的入口地址
D. 无条件转移指令执行后,PC值一定是被转移目标地址
正确答案:B
题目解析
- 考点分析: 本题考察PC在指令执行过程中的变化规律。
- 错误选项分析 (B. 指令顺序执行时,PC值是自动加1): 这个说法是错误的。PC的自增量等于一条指令的长度。
- 如果计算机是按字节编址,而指令长度是4个字节(32位),那么PC每次应该自动加4。
- 只有在指令长度恰好为1个寻址单位(例如,1字节长的指令且按字节编址)时,PC值才加1。
- 因此,“自动加1”的说法过于绝对,在大多数现代计算机中都是不成立的。
- 正确选项分析:
- A. 机器指令中不能显式地使用PC: 在大多数指令集中,程序员不能像使用通用寄存器那样直接对PC进行算术运算(如
ADD PC, #10
)。对PC的修改是通过专门的控制流指令(JMP, CALL, RET)隐式完成的。此说法正确。 - C & D: 调用指令和无条件转移指令的定义就是修改PC的值,使其指向新的目标地址(子程序入口或跳转目标)。这两个说法都正确。
- A. 机器指令中不能显式地使用PC: 在大多数指令集中,程序员不能像使用通用寄存器那样直接对PC进行算术运算(如
13. 指令寄存器(IR)的位数取决于( C )。
题目原文
13. 指令寄存器(IR)的位数取决于( )。
A. 存储器的容量
B. 机器字长
C. 指令字长
D. 存储字长
正确答案:C
题目解析
- 考点分析: 本题考察指令寄存器(IR)宽度的决定因素。
- 正确选项分析 (C. 指令字长): 指令寄存器(IR)的功能是存放从内存中取出的一条完整指令。为了能够容纳这条指令,IR的位数必须等于指令字长。如果指令是变长的,IR的宽度必须等于最长指令的长度。
- 错误选项分析:
- A. 存储器的容量: 决定了地址线的数量和PC的宽度,与IR无关。
- B. 机器字长: 是CPU一次处理数据的位数,与指令长度可以不同。
- D. 存储字长: 是指存放在一个存储单元中的二进制代码位数,它可能等于也可能不等于指令字长(一条指令可能占用一个或多个存储字)。但IR必须能装下整条指令,所以其位数由指令字长决定。
14. CPU中通用寄存器的位数取决于( C )。
题目原文
14. CPU中通用寄存器的位数取决于( )。
A. 存储器的容量
B. 指令的长度
C. 机器字长
D. 都不对
正确答案:C
题目解析
- 考点分析: 本题考察通用寄存器(GPR)位数的决定因素。
- 正确选项分析 (C. 机器字长): 通用寄存器的位数是机器字长最直接的体现。所谓“32位CPU”或“64位CPU”,指的就是其机器字长是32位或64位,这也意味着其内部的通用寄存器、ALU等核心数据通路都是按这个宽度设计的。
- 错误选项分析:
- A. 存储器的容量: 决定地址宽度。
- B. 指令的长度: 决定IR的宽度。
- D. 都不对: 因为C是正确的。
15. CPU中的通用寄存器,( B )。
题目原文
15. CPU中的通用寄存器,( )。
A. 只能存放数据,不能存放地址
B. 可以存放数据和地址
C. 既不能存放数据,又不能存放地址
D. 可以存放数据和地址,还可以替代指令寄存器
正确答案:B
题目解析
- 考点分析: 本题考察通用寄存器的功能。
- 正确选项分析 (B. 可以存放数据和地址): 这是通用寄存器“通用性”的核心。它们既可以作为ALU的操作数来源和目标(存放数据),也可以被用来进行地址计算(如存放基地址、变址),或者直接作为指针存放内存地址。
- 错误选项分析:
- A. 只能存放数据,不能存放地址: 错误,存放地址是其重要功能之一。
- C. 既不能存放数据,又不能存放地址: 完全错误。
- D. 可以存放数据和地址,还可以替代指令寄存器: 错误,指令寄存器(IR)是专用寄存器,其功能不可被通用寄存器替代。
16. 在计算机系统中表示程序和机器运行状态的部件是( D )。
题目原文
16. 在计算机系统中表示程序和机器运行状态的部件是( )。
A. 程序计数器
B. 累加寄存器
C. 中断寄存器
D. 程序状态字寄存器
正确答案:D
题目解析
- 考点分析: 本题考察程序状态字寄存器(PSW)的功能定义。
- 正确选项分析 (D. 程序状态字寄存器): 程序状态字寄存器(PSW)就是专门为此设计的。它包含:
- 机器运行状态:如算术运算后的进位(CF)、溢出(OF)、零(ZF)、符号(SF)等状态标志。
- 程序运行状态:如中断是否允许(IF)、CPU工作模式(如用户态/核心态)、单步调试标志(TF)等控制标志。
- 错误选项分析:
- A. 程序计数器 (PC): 表示程序的执行顺序。
- B. 累加寄存器 (ACC): 存放操作数或运算结果。
- C. 中断寄存器: 通常用来记录中断源信息,是状态的一部分,但PSW更全面。
17. 状态寄存器用来存放( D )。
题目原文
17. 状态寄存器用来存放( )。
A. 算术运算结果
B. 逻辑运算结果
C. 运算类型
D. 算术、逻辑运算及测试指令的结果状态
正确答案:D
题目解析
- 考点分析: 本题具体考察状态寄存器中“状态标志”的来源。
- 正确选项分析 (D. 算术、逻辑运算及测试指令的结果状态): 这个选项最全面。状态寄存器中的标志位(如ZF, SF, CF, OF, PF等)不仅反映了算术运算(如ADD, SUB)和逻辑运算(如AND, OR, XOR)的结果特征,也反映了专门的测试指令(如TEST, CMP)的结果状态。CMP指令本质上是做减法但不保存结果,只更新标志位。
- 错误选项分析:
- A & B: 只提到了算术或逻辑运算,不全面。它们存放的是运算结果的状态,而不是结果本身。
- C. 运算类型: 运算类型由指令的操作码决定,存放在IR中,与状态寄存器无关。
18. 下列关于标志寄存器(EFLAGS 寄存器或 PSW 等)的叙述中,错误的是( C )。
题目原文
18. 下列关于标志寄存器(EFLAGS 寄存器或 PSW 等)的叙述中,错误的是( )。
A. 不需要普通用户用指令进行编码
B. 条件转移指令根据其中的一些标志位来确定 PC 的值
C. 可以通过指令直接访问标志寄存器并修改它的值
D. 可以用它来保存全部或局部的各种标志信息
正确答案:C
题目解析
- 考点分析: 本题深入考察标志寄存器的访问方式。
- 错误选项分析 (C. 可以通过指令直接访问标志寄存器并修改它的值): 这个说法被认为是“错误”的,因为对标志寄存器的访问是受限的、非通用的。程序员不能像操作通用寄存器(如
MOV AX, BX
)那样,用通用的数据传送或算术指令来“直接”读写标志寄存器。虽然存在一些特殊指令(如x86的PUSHF/POPF
,SAHF/LAHF
)可以整体或部分地读写标志寄存器,但这种访问不是“直接和任意”的,因此从通用性的角度看,该描述不准确,被判为错误。 - 正确选项分析:
- A: 标志位通常由算术逻辑指令自动设置,程序员不需要手动编码来设置它们。正确。
- B: 这是标志寄存器的核心用途,为条件判断和跳转提供依据。正确。
- D: 这是标志寄存器的定义,保存各种状态和控制标志。正确。
19. 控制器的功能是( C )。
题目原文
19. 控制器的功能是( )。
A. 产生时序信号
B. 从主存中取出指令并完成指令操作码译码
C. 从主存中取出指令、分析指令并产生有关的控制信号
D. 都不对
正确答案:C
题目解析
- 考点分析: 本题考察对控制器功能的完整理解。
- 正确选项分析 (C. 从主存中取出指令、分析指令并产生有关的控制信号): 这是对控制器功能最完整和准确的描述,涵盖了指令周期的核心三部曲:
- 取指令 (Fetch): 控制CPU从主存取指令。
- 分析指令 (Decode): 译码指令,确定要干什么。
- 执行指令: 产生一系列控制信号,指挥其他部件完成操作。
- 错误选项分析:
- A. 产生时序信号: 这是控制器功能的一部分(手段),但不是全部(目的)。
- B. 从主存中取出指令并完成指令操作码译码: 只描述了前两个阶段,遗漏了最重要的“产生控制信号以执行指令”的环节。
20. 指令译码器是对( B )进行译码。
题目原文
20. 指令译码器是对( )进行译码。
A. 整条指令
B. 指令的操作码字段
C. 指令的地址码字段
D. 指令的地址
正确答案:B
题目解析
- 考点分析: 本题考察指令译码器(ID)的具体工作对象。
- 正确选项分析 (B. 指令的操作码字段): 机器指令包含操作码(Opcode)和操作数/地址码。操作码字段指明了“该指令执行什么操作”(如加、减、存、取)。指令译码器的作用就是对这个操作码字段进行解码,以确定指令的性质和功能,进而产生相应的控制信号。
- 错误选项分析:
- A. 整条指令: 译码器主要关注操作码,地址码部分由其他逻辑处理。
- C. 指令的地址码字段: 地址码字段提供操作数或其地址,它被送往地址计算单元或MAR,而不是被“译码”。
- D. 指令的地址: 指指令在内存中的位置,存放在PC里,与译码无关。
21. CPU中不包括( C )。
题目原文
21. CPU中不包括( )。
A. 存储器地址寄存器
B. 指令寄存器
C. 地址译码器
D. 程序计数器
正确答案:C
题目解析
- 考点分析: 本题考察CPU与存储器的部件划分。
- 正确选项分析 (C. 地址译码器): 地址译码器是主存储器的组成部分。它的功能是接收CPU通过地址总线发来的地址,并根据该地址选中唯一的存储芯片或存储单元。它物理上位于内存条或主板的内存控制器中,不属于CPU。
- 错误选项分析:
- A, B, D (MAR, IR, PC) 都是CPU内部的核心寄存器,分别用于暂存访存地址、当前指令和下条指令地址。它们都属于CPU。
22. 以下关于计算机系统的概念中,正确的是( A )。
I. CPU不包括地址译码器
II. CPU的程序计数器中存放的是操作数地址
III. CPU中决定指令执行顺序的是程序计数器
IV. CPU的状态寄存器对用户是完全透明的
题目原文
22. 以下关于计算机系统的概念中,正确的是( )。
I. CPU不包括地址译码器
II. CPU的程序计数器中存放的是操作数地址
III. CPU中决定指令执行顺序的是程序计数器
IV. CPU的状态寄存器对用户是完全透明的
A. I、III
B. III、IV
C. II、III、IV
D. I、III、IV
正确答案:A
题目解析
- 考点分析: 本题是对前面多个知识点的综合考察。
- 逐条分析:
- I. CPU不包括地址译码器: 正确。如21题所述,地址译码器属于存储器。
- II. CPU的程序计数器中存放的是操作数地址: 错误。PC存放的是下一条指令的地址。
- III. CPU中决定指令执行顺序的是程序计数器: 正确。PC始终指向下一条指令,是程序流程的控制核心。
- IV. CPU的状态寄存器对用户是完全透明的: 错误。用户可通过条件转移指令读取其状态,因此对用户是可见的。
- 组合判断: 只有 I 和 III 是正确的。
23. 间址周期结束后,CPU内寄存器MDR中的内容为( B )。
题目原文
23. 间址周期结束后,CPU内寄存器MDR中的内容为( )。
A. 指令
B. 操作数地址
C. 操作数
D. 无法确定
正确答案:B
题目解析
- 考点分析: 本题考察指令周期中“间址周期”的功能。
- 正确选项分析 (B. 操作数地址):
- 间址周期存在的目的,就是为了处理“间接寻址”方式。
- 在间接寻址中,指令的地址码字段给出的不是操作数的地址,而是存放操作数地址的内存单元的地址(即地址的指针)。
- 间址周期的任务就是:根据指令给出的这个指针地址访问内存,把真正的操作数有效地址取出来。
- 这个从内存取出的“有效地址”会通过MDR(内存数据寄存器) 传递给CPU。因此,在间址周期结束时,MDR中存放的内容就是操作数的地址。
- 错误选项分析:
- A. 指令: 在取指周期结束时,MDR中是指令。
- C. 操作数: 在执行周期中,CPU会用刚取到的有效地址再次访存,这时MDR中才会是操作数。
- D. 无法确定: 在标准的指令周期模型中,每个周期的产物是明确的,间址周期的产物就是有效地址。
24. 一台32位计算机的主存储器容量为4GB,按字节编址,字长和指令字长都是32位。若指令按字边界对齐存放,则程序计数器(PC)的宽度至少是( B )。
题目原文
24. 一台32位计算机的主存储器容量为4GB,按字节编址,字长和指令字长都是32位。若指令按字边界对齐存放,则程序计数器(PC)的宽度至少是( )。
A. 32位
B. 30位
C. 8位
D. 34位
正确答案:B
题目解析
- 考点分析: 本题考察存储器寻址与PC宽度的计算,特别是“对齐”的影响。
- 计算步骤:
- 总寻址空间: 4GB = 2^2 * 2^30 B = 2^32 B。按字节编址,需要32位地址。
- 对齐条件: 指令字长32位 = 4字节。“按字边界对齐”意味着每条指令的起始地址必须是4的倍数。
- 地址特征: 4的倍数的地址,其二进制表示的最低两位永远是
00
。 - PC宽度优化: 既然所有指令地址的低2位都是固定的
00
,PC寄存器就无需存储这两位。PC可以只存储地址的高30位(字地址)。当CPU需要用PC访存时,硬件会自动在这30位地址后面补上00
,形成完整的32位字节地址。 - 结论: PC的宽度至少需要 32 - 2 = 30位。
25. 【2010统考真题】下列寄存器中,汇编语言程序员可见的是( B )。
题目原文
25. 【2010统考真题】下列寄存器中,汇编语言程序员可见的是( )。
A. 存储器地址寄存器 (MAR)
B. 程序计数器 (PC)
C. 存储器数据寄存器 (MDR)
D. 指令寄存器 (IR)
正确答案:B
题目解析
- 考点分析: 本题再次考察寄存器的用户可见性。
- 正确选项分析 (B. 程序计数器, PC): 汇编程序员可以通过JMP(跳转)、CALL(调用)、RET(返回)等指令来间接或直接地修改PC的值,以控制程序的执行流程。因为其值可以被程序员通过指令来控制,所以PC是用户可见的。
- 错误选项分析:
- A, C, D (MAR, MDR, IR): 均为CPU内部实现指令取指和数据交换的硬件部件,其操作由控制逻辑自动完成,程序员无法通过指令访问,对用户是透明的。
26. 【2016统考真题】某计算机主存空间为4GB,字长为32位,按字节编址,采用32位字长指令字格式。若指令按字边界对齐存放,则程序计数器(PC)和指令寄存器(IR)的位数至少分别是( B )。
题目原文
26. 【2016统考真题】某计算机主存空间为4GB,字长为32位,按字节编址,采用32位字长指令字格式。若指令按字边界对齐存放,则程序计数器(PC)和指令寄存器(IR)的位数至少分别是( )。
A. 30, 30
B. 30, 32
C. 32, 30
D. 32, 32
正确答案:B
题目解析
- 考点分析: 本题结合了PC宽度和IR宽度的计算。
- PC宽度分析(同24题):
- 4GB (2^32 B) 寻址空间,按字节编址,基础地址宽度32位。
- 按字(4字节)对齐,地址低2位恒为00,可省略。
- 所以 PC 的位数至少是 30位。
- IR宽度分析:
- 指令寄存器(IR)的功能是保存完整的一条指令。
- 题目说明“采用32位字长指令字格式”,即每条指令长度为32位。
- 因此,IR必须有足够的宽度来容纳这32位指令。
- 所以 IR 的位数至少是 32位。
- 组合结果: PC为30位,IR为32位。正确答案是 (30, 32)。