_计算机_学院_软件工程_专业_2_班______组、学号_
姓名_ _协作者___________ 教师评定_____________
实验题目 复杂模型机的设计与实现 _
1. 实验目的与要求:
目的: 1.掌握并实现较为复杂的计算机原理。
2.本实验扩展了 16 条机器指令,综合运用所学的计算机原理知识,用扩
展机器指令设计编写程序,并通过 CPU 运行所编写的程序。
要求:按练习一和练习二的要求完成相应的操作,并上机调试运行。
2. 实验方案:
1.实验连线
按上图在实验仪上接好线后,仔细检查无误后可接同电源。
2.实验程序
实验程序作为例子已存在硬盘里,文件名为 EX3,它包括机器指令程序和微
指令程序的微代码,机器指令程序如下:(地址和内容都是十六进制)
从数据开关输入数据 01H->R0
从数据开关输入数据 02H->R2
(R2)+(R0)+CY,结果送 R0
说 明
内容
44
46
98
81
F5
0C
00
助记符
IN 01,R0
IN 02,R2
ADC R2,R0
MOV R0,R1 R0 内容送入 R1
RLC R1,R2 R1 内容带进位循环左移,结果送 R1
BZC 00,00 有进位或结果为 0,即 CY=1 或 ZI=1,
地址
00
01
02
03
04
05
跳转到 00 地址单元
06
微指令的微代码如下:(地址和内容都是十六进制)
内容
088101
82ED01
50C000
04A000
A0E000
06E000
07A000
A0E000
8AED01
8CED01
3BA000
018001
3C2000
0EA000
0FB601
25EA95
地址
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
3.结果测试
地址
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
内容
83ED01
85ED01
8DED01
A6ED01
011000
010403
168001
019A3D
0149201
2AA201
2CB201
32A201
33A201
36A201
378231
398231
地址
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
内容
019000
018402
81DB05
E48001
018001
A0AA95
27A000
28BC01
29EA95
A0AA95
2BB401
419B95
2DA401
6EAB05
2FAA0D
30AA01
地址
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
内容
71810D
419B95
019A01
35B401
81DB05
419BB9
019A0D
388829
019801
3A8819
019801
080A07
098A06
1、程序运行前必须对微地址清零。拨动实验仪右下角清零开关 CLR(1→0
→1)后,观看实验仪右上方的微地址显示灯(UA0—UA5)是否全为零,若全
为零,则正确,若不全为零,说明有问题,要检查。
2、使用单步微指令运行程序,单击该系统第三行的“单步微指令”图标即可。
3、在每次单步执行一条微指令的过程中,都要观察屏幕动态流线显示的运行
结果,根据屏幕显示的结果分析与该条微指令的格式和功能是否一致。若不一致,
必须检查原因。
4、记录实验过程的相关数据和结果,并回答相关的练习题。
3. 实验结果和数据处理:
第一次运行实验结果记录表:
题
号
选项
指令
输入指令 IN
带进位加法指令 ADC
传送指令 MOV
带进位循环左移指令 RLC
条件转移指令 BZC
① ② ③ ④ ⑤
B
B
B
B
A
A
A
B
A
A
B
B
A
B
B
A
B
A
第二次运行实验结果记录表:
题
号
选项
指令
输入指令 IN
带进位加法指令 ADC
带进位循环左移(RLC)
指令
条件转移指令 BZC
① ② ③ ④ ⑤
将第一条输入指令输入数据改为 F0
B
B
B
C
B
B
B
B
表 6.4:
微地址
35
66
75
76
表 6.5:
S3 S2 S1 S0 M Cn WE A9 A8
1 1
0
0
1 1
1 1
0
0
1 1
0 0
0 0
0 0
0 0
0 0
0 1
0 0
0 0
0 0
1 0
0 0
0 0
A
0 1 0
0 0 1
0 1 0
0 0 1
B
0 0 1
1 0 1
0 0 1
1 0 1
C
0 0 0
0 0 0
0 0 0
0 0 0
UA5~UA0
1 1 0 1 1 0
1 1 1 1 0 1
1 1 1 1 1 0
0 0 0 0 0 1
微地址(十六进制)
内容(六位十六进制表示的微指令代码)
1D
36
3D
3E
36 A2 01
3D 9A 0D
3E A2 01
01 9A 01
表 6.6:机器指令程序:
助记符
IN R0,66
NEG RO
OUT RO
STA 01,0A,R0
说 明
66→R0
R0 求补,并将结果送至 R0
RO→OUTPUT UNIT
RO→(0A)
CLR R2
0→R2
LDA 10,10,R1
(RI)+D→R1,其中(RI)=0,D=10
JMP 11,F6
(PC)+D→PC,其中 D=F6
地址 内容
00
01
02
03
04
05
06
07
08
09
0A
44
D0
58
14
0A
72
21
10
38
F6
10H
表 6.7:
求补结果,即
间接寻址模
存储器 10H 地址
变址寻址模式偏移量 D
R1 的
相对寻址模式的
R0 的内容
式的偏移量 D
9A
0A
的内容
9A
和 R2 寄存器的内容
10,0
内容
9A
偏移量 D
F6
4. 结论
1、本次实验扩展了 16 条机器指令,其中算术指令 9 条,访问内存指令和程序控
制指令 4 条,输入输出指令 2 条,停机指令 1 条。每条指令基本上都是由操
作码,地址码和寄存器编码组成。
2、本次实验完成了对 EX3 程序的基本操作,其中包括 IN 指令、ADC 指令、MOV
指令、RLC 指令和 BZC 指令。
3、本次实验也完成了对简单程序的编写以及基本指令功能的修改,其中将 COM
指令修改为求补指令 NEG,并且完成了求补程序的编写。
4、本次实验还完成了对四种基本寻址方式的操作,其中包括直接寻址,间接寻
址,RI 变址寻址和相对寻址。
5. 问题与讨论及实验总结
本实验是经过一系列硬件课程如计算机原理的学习及相关实验后,综合应用
所学理论知识解决实际设计和应用问题,进行一个综合的系统的实验。这个实验
综合了所学的计算机原理知识,难度较大,通过设计过程,我熟悉和掌握微机系
统的硬件设计方法、设计步骤,真正做到理论联系实际,提高动手能力和分析问
题、解决问题的能力。这个学期的计算机组成原理实验对我学习计算机组成原理
专业课有很好的实践理解作用。
IN
P(2)
24
75
不用操作,只是装
入指令为 P(2)准备
75
SW→BUS
BUS→DR1
77
SW→BUS
BUS→DR2
S3 S2 S1 S0 M Cn WE A9 A8
1 1
0
0 0
0
0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
A
0 0 0
0 1 0
0 1 1
B
0 0 0
0 0 0
0 0 0
C
0 1 0
0 0 0
0 0 0
UA5~UA0
1 1 1 1 0 1
0 0 0 0 0 1
0 0 0 0 0 1
微地址(十六进制)
内容(六位十六进制表示的微指令代码)
14
3D
3F
3D1000
01A201
01B401
6.思考题:
(1)
(2)
表 6.10:
微地址
24
75
77
表 6.11:
(3)
表 6.12:
地址 内容
助记符
00
01
02
40
48
60
IN AA,DR1
IN 55,DR2
HALT
说 明
AA→DR1
55→DR2
停机