计算机组成与系统结构
课程设计报告
学 院: 计算机科学与网络工程学院
专业班级: 网络工程
学 号: 19062000
姓 名: 超级菜狗
完成日期: 2021年 01 月 12 日
一、本课程设计的性质、目的、任务
《计算机组成与系统结构课程设计》是计算机学院各专业集中实践性环节之一,是学习完《计算机组成与系统结构》课程后进行的一次全面的综合练习。其目的是综合运用所学计算机原理知识,设计并实现一台模型计算机,以便巩固所学的知识,提高分析问题和解决问题的能力。
二、本课程设计的基本理论
1、掌握算术、逻辑、移位运算实验,熟悉ALU运算控制位的运用。
2、掌握存储器组织、读写方式及与总路线组成的数据通路,掌握地址总线、数据总线的工作原理。
3、掌握指令结构和指令取指、执行工作过程。
4、掌握CPU的微程序控制原理。
三、课程设计题目
题目
综合运用所学计算机原理知识,设计并实现具有以下16条指令的指令集结构的模型计算机:
编号 |
助记符 |
机器指令码 |
说明 |
0 |
SUB Rd,Rs |
0000 RdRs |
Rd-Rs→Rd |
1 |
ADD Rd,Rs |
0001 RdRs |
Rd+Rs→Rd |
2 |
AND Rd,Rs |
0010 RdRs |
Rd&Rs→Rd (Rd和Rs相与) |
3 |
DEC Rd |
0011 Rd00 |
将Rd值减1 |
4 |
CLR Rd |
0100 Rd00 |
将Rd清零 |
5 |
RL Rd |
0101 Rd00 |
Rd循环左移一位 |
6 |
RRC Rd |
0110 Rd00 |
Rd带进位右移一位 |
7 |
MOV Rd,Rs |
0111 RdRs |
Rs→Rd |
8 |
LDI Rd,* |
1000 Rd00 XXXXXXXX |
将指令中的立即数(第二字节)送入Rd |
9 |
OUT IOH,Rs |
1001 00Rs |
Rs→i/o(数据开关)高字节 |
10 |
LDA Rd,M |
1010 Rd00 XXXXXXXX XXXXXXXX |
[M] →Rd |
11 |
STA M,Rs |
1011 00Rs XXXXXXXX XXXXXXXX |
Rs→[M] |
12 |
JMP M |
1100 0000 XXXXXXXX XXXXXXXX |
[M]→PC,即跳转到M所指单元 |
13 |
JZ M |
1101 0000 XXXXXXXX XXXXXXXX |
当Z=1时,跳转到M所指单元 |
14 |
JC M |
1110 0000 XXXXXXXX XXXXXXXX |
当CY=1时,跳转到M所指单元 |
15 |
HALT |
1111 0000 |
停机 |
模型计算机设计完成后,用所给的测试程序check20_1.asm(测13条非转移指令)和
check20_2.asm(测3条转移指令)检查正确性。检查方法:在测试程序中#load s本人的.IS微指令程序,实验箱电源关闭重启并连接,装载后选择“运行”或“单步”执行。
check20_1.asm运行的正确结果为:寄存器R0R1R2R3分别显示00112233,IOH显示33。
check20_2.asm运行的正确结果为:寄存器R0R1R2R3分别显示00112233,如果显示EE则执行有错误。
|
|
- 微程序流程图(树形图)
- 课程设计的模型机微指令表(只填写有微指令的相关行):
微址00002)1) |
M23 |
M22 |
M21 |
M20 |
M19 |
M18 |
M17 |
M16 |
代码 |
M15 |
M14 |
M13 |
M12 |
M11 |
M10 |
M9 |
M8 |
代码 |
M7 |
M6 |
M5 |
M4 |
M3 |
M2 |
M1 |
M0 |
代码 |
后续微址 |
说明 |
E/M |
IP |
MWR |
R/M |
o2 |
o1 |
O0 |
OP |
M |
CN |
S2 |
S2 |
S0 |
X2 |
X1 |
X0 |
XP |
W |
ALU |
Iu |
IE |
IR |
Icz |
Ids |
||||||
0001 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
40 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
04 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
07 |
0600 |
取指入口,用IR寄存器获取当前指令,并让PC+1 |
0600 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
07 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
06 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
80 |
0601 |
SUB的起始微指令,Ax=Rd |
0601 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
05 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
06 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
00 |
0602 |
BX=Rs |
0602 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0F |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
91 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
82 |
0001 |
Rd=A-B |
0620 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
07 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
06 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
80 |
0621 |
ADD的起始微指令,Ax=Rd |
0621 |
0 |
0 |
0 |
0 |
0 |
1 |