_计算机__学院___计科___专业__6__班______组、学号_3108006692
姓名__王昊____协作者___________ 教师评定_____________
实验题目_复杂模型机的设计与实现_______________________
1. 实验目的与要求:
掌握并实现较为复杂的计算机原理。
本实验扩展了 16 条机器指令,综合运用所学的计算机原理知识,用
扩展机器指令设计编写程序,通过 CPU 运行所编写的程序。
按练习一和练习二的要求完成相应的操作,并上机调试运行。
2. 实验方案:
按实验指导书上的图 6-3 在实验仪上接好线后,仔细检查无误后可接
通电源。
与 PC 机联机将实验程序(EX3)下载到实验仪里,该程序包括机器
指令程序和微指令程序,机器指令程序装入 6116 存储器里,微指令
程序装入 E2PROM2816 控制存储器里。
程序运行前必须对微地址清零,拨动实验仪右下角清零开关 CLR
(1->0->1)
用单步微指令运行程序,单击该系统第三行的“单步微指令”图标即
可。
观察和记录程序运行过程的数据及结果。
3. 实验结果和数据处理:
第一次运行实验结果记录表:
题
号
选项
指令
输入指令 IN
带进位加法指令 ADC
传送指令 MOV
带进位循环左移指令 RLC
条件转移指令 BZC
① ② ③ ④ ⑤
A
B
A
B
A
A
A
A
A
A
A
A
A
A
A
A
A
第二次运行实验结果记录表:
题
号
选项
指令
输入指令 IN
带进位加法指令 ADC
条件转移指令 BZC
① ② ③ ④ ⑤
将第一条输入指令输入数据改为 F0
B
C
B
B
B
练习操作题记录表:(注意:题目不用写入实验报告)
表 6.4:
微地址(O) S3 S2 S1 S0 M Cn WE A9 A8
35
66
75
76
000000011
000011011
000000011
000000011
110110
111101
111110
000001
C
000
000
000
000
UA5~UA0
A
010
001
010
001
B
001
101
001
101
表 6.5:
微地址(十六进制)
内容(六位十六进制表示的微指令代码)
1D
36A201
36
3D9A0D
3D
3EA201
3E
019A01
表 6.6:机器指令程序:
助记符
IN R0,66
NEG RO
OUT RO
STA 01,0A,R0
说 明
66→R0
R0 求补,并将结果送至 R0
RO→OUTPUT UNIT
RO→(0A)
CLR R2
LDA 10,10,R1
0→R2
(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 的内容
9A
式的偏移量 D
0A
的内容
9A
和 R2 寄存器的内容
10,0
内容
9A
偏移量 D
F6
4. 结论
实验得出的数值与理论计算值吻合。
5. 问题与讨论及实验总结
这个实验本身难度较大,加上我刚开始做练习时忘了要把十六进制的
微代码的第一字节和第三字节内容对换后再输入,导致怎么修改微指
令结果都得不到正确结果。八进制、二进制、十六进制之间的转化要
很熟练,不然很容易算错,全是 0 和 1 的代码一不小心就会写错。通
过这次实验我掌握并实现较为复杂的计算机原理,用扩展机器指令设
计编写程序,通过 CPU 运行所编写的程序。
6. 思考题:
(1)
IN
P(2)
SW->BUS
BUS->DR1
SW->BUS
BUS->DR2
(2)
微地址(八
S3 S2 S1 S0 M Cn WE A9 A8
A
B
C
UA5~UA0
进制)
24
75
77
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 1
0 1
0
1
1
0 0 1
0 1 0
0 1 1
0 0 0
0 0 1
0 1 0
0 0 0
0 0 0
0 0 0
1 1 1 1 0 1
0 0 0 0 0 1
0 0 0 0 0 1
微地址(十六进制) 内容(六位十六进制表示的微指令代码)
14
3D
3F
3D1000
01A201
01B401
(3)
地址
00
01
02
内容
40
48
60
助记符
IN AAH,DR1
IN 55H,DR2
HALT
说明
AAH→DR1
55H→DR2
停机