Skip to content

第3章 指令系统 - 专项练习

老师在录音里强调,第三章指令系统是整本书的重点之一。

他特别提醒:大题必考指令格式设计(扩展操作码)和有效地址(EA)的计算。在基础题部分,最容易挖坑的地方是寻址方式的定义、各种寻址方式的访存次数,以及"PC+1"中的"1"代表的具体字节数


一、填空题(每空 1 分)

1.
一条机器指令通常由 __________________ 两部分组成。
2.
零地址指令的操作数通常由 _________ 隐含提供。
3.
扩展操作码技术的核心是:让地址码个数较少的指令,拥有长度较 _________ 的操作码。
4.
_________ 寻址方式中,操作数就包含在指令中,取出指令即取出操作数。
5.
_________ 寻址方式最有利于编写浮动程序(即程序在内存中可以随机移动)。
6.
若指令长度为 32 位,按字节编址,PC 指向当前指令,则取指后 PC 自动加 _________
7.
_________ 寻址中,有效地址 EA 等于指令中给出的形式地址 A
8.
寄存器间接寻址中,有效地址 EA 存放在 _________ 中。
9.
程序控制类指令(如跳转指令)主要通过改变 _________ 的内容来实现程序的转移。
10.
为了缩短指令长度,同时扩大寻址范围,可以采用 _________ 寻址或 _________ 寻址。

二、单项选择题(每题 2 分)

1.
(核心考点:访存次数)老师强调时间复杂度。不计取指,执行一次寄存器间接寻址的指令需访问( )次内存。
A.
0
B.
1
C.
2
D.
3
2.
(重点:寻址速度)下列寻址方式中,执行速度最慢的是( )。
A.
立即寻址
B.
寄存器寻址
C.
直接寻址
D.
间接寻址
3.
(扩展操作码计算)设指令字长 16 位,每个地址码 4 位。若已有 14 条三地址指令,则最多还可以有( )条二地址指令。
A.
2
B.
16
C.
32
D.
256
4.
(相对寻址陷阱)某机指令长 2 字节,按字节编址。当前 PC 值为 2000H,执行一条相对寻址的跳转指令 JMP * + 8(* 为形式地址),则跳转的目标地址是( )。
A.
2008H
B.
200AH
C.
2006H
D.
2002H
5.
(指令格式辨析)堆栈型计算机(Stack Machine)主要采用( )格式的指令。
A.
三地址
B.
二地址
C.
一地址
D.
零地址
6.
(寻址定义)形式地址为 A,寄存器 R 的内容为 (R)。若有效地址 EA=(R)+A,则该寻址方式是( )。
A.
基址寻址
B.
变址寻址
C.
相对寻址
D.
A 或 B 均可
7.
(寄存器寻址优点)录音提到:使用寄存器寻址的主要目的是( )。
A.
扩大寻址范围
B.
减少指令长度并提高速度
C.
简化硬件设计
D.
增加指令条数
8.
(地址对齐陷阱)在按字节编址的计算机中,若 32 位长的数据(双字)存储在 2001H 开始的单元中,若要求边界对齐,则该存储方式( )。
A.
合法
B.
不合法
C.
仅大端法合法
D.
仅小端法合法
9.
(指令类型)下列指令中,不属于程序控制类指令的是( )。
A.
调用指令(CALL)
B.
转移指令(JMP)
C.
逻辑左移指令(SHL)
D.
返回指令(RET)
10.
(编址方式)老师提到班级号/宿舍号类比。将 I/O 端口地址和主存地址看作一个统一的地址空间,这种编址方式称为( )。
A.
独立编址
B.
统一编址
C.
混合编址
D.
映射编址

参考答案与解析

一、填空题

  1. 操作码(OP)、地址码(指令的两大支柱)
  2. 堆栈(或栈顶单元)(零地址指令的核心特征)
  3. (扩展操作码的设计初衷)
  4. 立即(不需要访存,最快)
  5. 相对(老师强调:相对寻址只记偏移量,不记绝对地址)
  6. 4PC 更新陷阱:按字节编址,加号后面是指令的长度)
  7. 直接EA=A
  8. 寄存器(形式地址 R 指向寄存器,寄存器里存 EA
  9. 程序计数器(PC)
  10. 间接、寄存器间接(通过短地址找到长地址)

二、选择题

  1. B - 一次去内存找有效地址 EA,如果还要取数,则是 EA 对应单元
  2. D - 间接寻址至少要访问两次内存,最慢
  3. C - 三地址用掉 14 个,剩下 2 个窗口。每个窗口扩出 24=16 条,总共 2×16=32
  4. B - 录音陷阱:取指后 PC 先更新为 2000+2=2002H,再加偏移量 8,得 200AH
  5. D - 栈顶隐含寻址
  6. D - 变址和基址在硬件逻辑上都是"寄存器+形式地址"
  7. B - 寄存器编号短,且不需访存
  8. B - 双字长 4 字节,起始地址必须是 4 的整数倍,2001H 不合法
  9. C - 左移是运算类指令,不涉及程序流跳转
  10. B - 统一编址又称存储器映射寻址

重点提示

  1. 访存次数:立即寻址和寄存器寻址0次,直接寻址和寄存器间接寻址1次,间接寻址2次
  2. PC更新陷阱:取指后PC先更新(加指令长度),相对寻址的基准是更新后的PC值
  3. 扩展操作码:地址码少的指令用更长的操作码,通过编码窗口扩展
  4. 边界对齐:n字节数据起始地址必须是n的整数倍
  5. 相对寻址:最有利于编写浮动程序,只记偏移量不记绝对地址
  6. 程序控制类指令:通过改变PC值实现程序转移,包括跳转、调用、返回等