题9

题目

【2021 统考真题】假定计算机 M 字长为 16 位,按字节编址,连接 CPU 和主存的系统总线中地址线为 20 位、数据线为 8 位, 采用 16 位定长指令字, 指令格式及说明如下:

其中, op1 - op3 为操作码, rs, rtrd 为通用寄存器编号, R[r] 表示寄存器 r 的内容, im 为立即数, target 为转移目标的形式地址。请回答下列问题。

(1) ALU 的宽度是多少位?可寻址主存空间大小为多少字节?指令寄存器、主存地址寄存器 (MAR) 和主存数据寄存器 (MDR) 分别应有多少位?

(2)R型格式最多可定义多少种操作?I 型和 J 型格式总共最多可定义多少种操作?通用寄存器最多有多少个?

(3) 假定 op1 为 0010 和 0011 时, 分别表示有符号整数减法和有符号整数乘法指令, 则指令 01B2H 的功能是什么 (参考上述指令功能说明的格式进行描述)? 若1,2,3 号通用寄存器当前内容分别为 052H, 0008H, 0020H ,则分别执行指令 01B2H01B3H 后,3 号通用寄存器内容各是什么?各自结果是否溢出?

(4) 若采用 I 型格式的访存指令中 imm (偏移量) 为有符号整数, 则地址计算时应对 imm 进行零扩展还是符号扩展?

(5) 无条件转移指令可以采用上述哪种指令格式?

分析

题43

  1. ALU 的宽度为 16 位, ALU 的宽度即 ALU 运算对象的宽度, 通常与字长相同。地址线为 20 位,按字节编址,可寻址主存空间大小为 字节 (或 )。指令寄存器有 16 位,和单条指令长度相同。MAR 有 20 位, 和地址线位数相同。MDR 有 8 位, 和数据线宽度相同。
  2. 型格式的操作码有 4 位,最多有 (或 16) 种操作。I 型和 J 型格式的操作码有 6 位, 因为它们的操作码部分重叠, 所以共享这 6 位的操作码空间, 且前 6 位全为 0 的编码已被 型格式占用,因此 I 和 J 型格式最多有 种操作。从 型和 I 型格式的寄存器编号部分可知, 只用 2 位对寄存器编码, 因此通用寄存器最多有 4 个。
  3. 指令 为一条 型指令,操作码 0010 表示有符号整数减法指令,其功能为 。执行指令 后, ,结果未溢出。指令 ,操作码 0011 表示有符号整数乘法指令,执行指令 后, 乘以 8 相当于将 算术左移 3 位,由于 是一个负数,符号位为 1,在算术左移的过程中移出了 101 ,不全为 1 , 由此可以判断结果溢出。
  4. 在进行指令的跳转时, 既可能向前跳转, 又可能向后跳转, 偏移量是一个有符号整数, 因此在地址计算时,应对 imm 进行符号扩展。
  5. 无条件转移指令可以采用 型格式,将 target 部分写入 PC 的低 10 位,完成跳转。