计算机组成原理实验考试样题
一、设计任务 说明:以下蓝色的部分要求考生填写
(1)将计组实验仪上模型机指令系统(8条指令)中的减法指令改为求反指令。
(2)在(1)的基础上扩展两条指令:减1指令和逻辑或指令。
二、 按照设计任务的要求,完成表1指令功能与格式(6分)
表1 指令功能与格式
名称 |
助记符 |
功能 |
指令格式 |
||
IR7 IR6 IR5 IR4 |
IR3 IR2 |
IR1 IR0 |
|||
求反 |
NOT Rd |
Rd(———) → Rd |
0 0 0 1 |
× × |
Rd1 Rd0 |
减1 |
DEC |
Rd减1→Rd |
1 0 0 0 |
× × |
Rd1 Rd0 |
逻辑或 |
OR |
Rd 或 Rs→Rd |
1 0 0 1 |
Rs1 Rs0 |
Rd1 Rd0 |
注:“减1”和“逻辑或”的操作码可以在1000-1111之间。若“减1”使用过的操作码,则“逻辑或”就不能再用,反之亦然。
三、根据要求完成图1微程序流程图,(14分)(注:TEC-5中原来的框图在图1中用红色省略号表示,控制台微程序流程图与TEC-5相同,即保持不变)
图1 微程序流程图
四、根据图1微程序流程图编写微程序代码表(15分)
表2 微程序代码表
微指令 |
ADD |
NOT |
DEC |
OR |
|
|
|
||||||
当前微地址 |
10 |
20 |
11 |
21 |
18 |
22 |
19 |
23 |
|
|
|
|
|
下一微地址 |
20 |
0F |
21 |
0F |
22 |
0F |
23 |
0F |
|
|
|
|
|
P0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
P1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
P2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
备用 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TJ |
|
|
|
|
|
|
|
|
|
|
|
|
|
LDIR |
|
|
|
|
|
|
|
|
|
|
|
|
|
PC+1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
|
|
|
|
LDPC# |
|
|
|
|
|
|
|
|
|
|
|
|
|
AR+1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
LDAR# |
|
|
|
|
|
|
|
|
|
|
|
|
|
LDDR1 |
1 |
|
1 |
|
1 |
|
1 |
|
|
|
|
|
|
LDDR2 |
1 |
|
|
|
|
|
1 |
|
|
|
|
|
|
LDRi |
|
1 |
|
1 |
|
1 |
|
1 |
|
|
|
|
|
SW-BUS# |
|
|
|
|
|
|
|
|
|
|
|
|
|
RS-BUS# |
|
|
|
|
|
|
|
|
|
|
|
|
|
ALU-BUS# |
|
1 |
|
1 |
|
1 |
|
1 |
|
|
|
|
|
RAM-BUS# |
|
|
|
|
|
|
|
|
|
|
|
|
|
CER# |
|
|
|
|
|
|
|
|
|
|
|
|
|
CEL# |
|
|
|
|
|
|
|
|
|
|
|
|
|
LR/W# |
|
|
|
|
|
|
|
|
|
|
|
|
|
Cn# |
|
|
|
|
|
|
|
|
|
|
|
|
|
M |
|
0 |
|
1 |
|
0 |
|
1 |
|
|
|
|
|
S0 |
|
1 |
|
0 |
|
1 |
|
0 |
|
|
|
|
|
S1 |
|
0 |
|
0 |
|
1 |
|
1 |
|
|
|
|
|
S2 |
|
0 |
|
0 |
|
1 |
|
1 |
|
|
|
|
|
S3 |
|
1 |
|
0 |
|
1 |
|
1 |
|
|
|
|
|
注:后缀为#的信号都是低电平有效信号,为了在控存EEPROM中用“1”表示有效,这些信号在控制器中经过反相后送往数据通路。
五、根据微指令代码表编写控存代码(17分)
表3 控存代码表
微地址 |
CM3 |
CM2 |
CM1 |
CM0 |
00 |
00 |
00 |
00 |
48 |
01 |
00 |
00 |
00 |
00 |
02 |
03 |
40 |
04 |
03 |
03 |
00 |
00 |
40 |
02 |
04 |
01 |
08 |
00 |
05 |
05 |
00 |
00 |
44 |
04 |
06 |
00 |
80 |
08 |
07 |
07 |
00 |
10 |
04 |
1E |
08 |
00 |
08 |
20 |
0F |
09 |
00 |
08 |
84 |
04 |
0A |
00 |
08 |
80 |
02 |
0B |
00 |
08 |
A4 |
1D |
0C |
00 |
08 |
A4 |
1E |
0D |
00 |
80 |
0C |
0E |
0E |
00 |
0C |
04 |
1D |
0F |
00 |
80 |
08 |
90 |
10 |
00 |
03 |
00 |
20 |
11 |
00 |
01 |
00 |
21 |
12 |
00 |
03 |
00 |
1A |
13 |
00 |
11 |
80 |
1B |
14 |
00 |
10 |
80 |
1C |
15 |
00 |
00 |
11 |
0F |
16 |
00 |
00 |
14 |
0F |
17 |
00 |
10 |
14 |
0F |
18 |
00 |
01 |
00 |
22 |
19 |
00 |
03 |
00 |
23 |
1A |
B8 |
24 |
10 |
0F |
1B |
01 |
20 |
10 |
0F |
1C |
03 |
44 |
10 |
0F |
1D |
01 |
08 |
00 |
0D |
1E |
01 |
08 |
00 |
06 |
1F |
00 |
10 |
20 |
0F |
20 |
90 |
24 |
10 |
0F |
21 |
08 |
24 |
10 |
0F |
22 |
F0 |
24 |
10 |
0F |
23 |
E8 |
24 |
10 |
0F |
填写表3,根据表3的数据,用软件UltraEdit-32编写如下四个文件:
cm0.bin cm1.bin cm2.bin cm3.bin ,然后通过串口调试助手软件,将以上四个文件下载到相应的控存芯片上。
六、对机器指令组成的简单程序(验证程序)进行手工译码(14分)
表4 机器代码表
内存地址 |
机器指令 |
机器代码 |
|
二进制 |
十六进制 |
||
00H |
ADD R3,R2 |
00001011B |
0BH |
01H |
OR R1, R0 |
10010001B |
91H |
02H |
NOT R1 |
00010001B |
11H |
03H |
STA R1, [R2] |
00111001B |
39H |
04H |
DEC R0 |
10000000B |
80H |
05H |
OUT R2 |
01111000B |
78H |
06H |
STP |
01100000B |
60H |
七、连线和设置通用寄存器R0、R1、R2、R3及内存单元(10H)的值(10分)
1、将微程序控制器与数据通路联机,组成一台模型机。
2、根据表5的数据在模型机上设置通用寄存器R0、R1、R2、R3及(10H)的值
表5 初始通用寄存器和内存单元数据表
R0 |
R1 |
R2 |
R3 |
(10H) |
55H |
AAH |
10H |
07H |
35H |
八、存储验证程序机器代码(7分)
根据表4,将验证程序的机器代码存储到模型机RAM相应的单元中。
九、运行结果(20分+1分)
用单拍方式或连续方式执行一遍程序。执行完程序后,查看通用寄存器R0、R1、R2、R3及(10H)的值并填入下表,最后分析运行结果。
表6 最终通用寄存器和内存单元数据表(实验结果表)
寄存器号 |
R0 |
R1 |
R2 |
R3 |
(10H) |
理论值 |
54H |
00 H |
10 H |
17 H |
00H |
实验值 |
|
|
|
|
|