第3章 指令系统 - 专项练习
老师在录音里强调,第三章指令系统是整本书的重点之一。
他特别提醒:大题必考指令格式设计(扩展操作码)和有效地址(EA)的计算。在基础题部分,最容易挖坑的地方是寻址方式的定义、各种寻址方式的访存次数,以及"PC+1"中的"1"代表的具体字节数。
一、填空题(每空 1 分)
1.
一条机器指令通常由 _________ 和 _________ 两部分组成。
2.
零地址指令的操作数通常由 _________ 隐含提供。
3.
扩展操作码技术的核心是:让地址码个数较少的指令,拥有长度较 _________ 的操作码。
4.
_________ 寻址方式中,操作数就包含在指令中,取出指令即取出操作数。
5.
_________ 寻址方式最有利于编写浮动程序(即程序在内存中可以随机移动)。
6.
若指令长度为 32 位,按字节编址,PC 指向当前指令,则取指后 PC 自动加 _________。
7.
在 _________ 寻址中,有效地址 等于指令中给出的形式地址 。
8.
寄存器间接寻址中,有效地址 存放在 _________ 中。
9.
程序控制类指令(如跳转指令)主要通过改变 _________ 的内容来实现程序的转移。
10.
为了缩短指令长度,同时扩大寻址范围,可以采用 _________ 寻址或 _________ 寻址。
二、单项选择题(每题 2 分)
1.
(核心考点:访存次数)老师强调时间复杂度。不计取指,执行一次寄存器间接寻址的指令需访问( )次内存。
2.
(重点:寻址速度)下列寻址方式中,执行速度最慢的是( )。
3.
(扩展操作码计算)设指令字长 16 位,每个地址码 4 位。若已有 14 条三地址指令,则最多还可以有( )条二地址指令。
4.
(相对寻址陷阱)某机指令长 2 字节,按字节编址。当前 PC 值为 2000H,执行一条相对寻址的跳转指令 JMP * + 8(* 为形式地址),则跳转的目标地址是( )。
5.
(指令格式辨析)堆栈型计算机(Stack Machine)主要采用( )格式的指令。
6.
(寻址定义)形式地址为 ,寄存器 的内容为 。若有效地址 ,则该寻址方式是( )。
7.
(寄存器寻址优点)录音提到:使用寄存器寻址的主要目的是( )。
8.
(地址对齐陷阱)在按字节编址的计算机中,若 32 位长的数据(双字)存储在 2001H 开始的单元中,若要求边界对齐,则该存储方式( )。
9.
(指令类型)下列指令中,不属于程序控制类指令的是( )。
10.
(编址方式)老师提到班级号/宿舍号类比。将 I/O 端口地址和主存地址看作一个统一的地址空间,这种编址方式称为( )。
参考答案与解析
一、填空题
- 操作码(OP)、地址码(指令的两大支柱)
- 堆栈(或栈顶单元)(零地址指令的核心特征)
- 长(扩展操作码的设计初衷)
- 立即(不需要访存,最快)
- 相对(老师强调:相对寻址只记偏移量,不记绝对地址)
- 4(
更新陷阱:按字节编址,加号后面是指令的长度) - 直接(
) - 寄存器(形式地址
指向寄存器,寄存器里存 ) - 程序计数器(PC)
- 间接、寄存器间接(通过短地址找到长地址)
二、选择题
- B - 一次去内存找有效地址
,如果还要取数,则是 对应单元 - D - 间接寻址至少要访问两次内存,最慢
- C - 三地址用掉 14 个,剩下 2 个窗口。每个窗口扩出
条,总共 - B - 录音陷阱:取指后 PC 先更新为
,再加偏移量 8,得 200AH - D - 栈顶隐含寻址
- D - 变址和基址在硬件逻辑上都是"寄存器+形式地址"
- B - 寄存器编号短,且不需访存
- B - 双字长 4 字节,起始地址必须是 4 的整数倍,2001H 不合法
- C - 左移是运算类指令,不涉及程序流跳转
- B - 统一编址又称存储器映射寻址
重点提示
- 访存次数:立即寻址和寄存器寻址0次,直接寻址和寄存器间接寻址1次,间接寻址2次
- PC更新陷阱:取指后PC先更新(加指令长度),相对寻址的基准是更新后的PC值
- 扩展操作码:地址码少的指令用更长的操作码,通过编码窗口扩展
- 边界对齐:n字节数据起始地址必须是n的整数倍
- 相对寻址:最有利于编写浮动程序,只记偏移量不记绝对地址
- 程序控制类指令:通过改变PC值实现程序转移,包括跳转、调用、返回等