组成原理
2021-43
假定计算机 M 字长为 16 位,按字节编址,连接 CPU 和主存的系统总线中地址线为 20 位、数据线为 8 位,采用 16 位定长指令字,指令格式及其说明如下:

其中,op1~op3 为操作码,rs、rt 和 rd 为通用寄存器编号,R[r] 表示寄存器 r 的内容,imm 为立即数,target 为转移目标的形式地址。请回答下列问题。
1)ALU 的宽度是多少位?可寻址主存空间大小为多少字节?指令寄存器、主存地址寄存器(MAR)和主存数据寄存器(MDR)分别应有多少位?
2)R 型格式最多可定义多少种操作?I 型和 J 型格式总共最多可定义多少种操作?通用寄存器最多有多少个?
3)假定 op1 为 0010 和 0011 时,分别表示带符号整数减法和带符号整数乘法指令,则指令 01B2H 的功能是什么(参考上述指令功能说明的格式进行描述)?若 1、2、3 号通用寄存器当前内容分别为 B052H、0008H、0020H,则分别执行指令 01B2H 和 01B3H 后,3 号通用寄存器内容各是什么?各自结果是否溢出?
4)若采用 I 型格式的访存指令中 imm(偏移量)为带符号整数,则地址计算时应对 imm 进行零扩展还是符号扩展?
5)无条件转移指令可以采用上述哪种指令格式?
答案
(1)ALU 宽度为 16 位;可寻址主存空间为 220 B,即 1 MB;IR 为 16 位,MAR 为 20 位,MDR 为 8 位。
(2)R 型格式最多定义 16 种操作;I 型和 J 型格式总共最多定义 63 种操作;通用寄存器最多 4 个。
(3)
01B2H:R[3] ← R[1] - R[2],执行后R[3]=B04AH,不溢出;01B3H:R[3] ← R[1] × R[2],执行后R[3]=8290H,溢出。
(4)对 imm 进行符号扩展。
(5)采用 J 型格式。