计算机组成原理课程设计 08计算机1班 李臣Word文件下载.docx
- 文档编号:7721021
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:17
- 大小:198.78KB
计算机组成原理课程设计 08计算机1班 李臣Word文件下载.docx
《计算机组成原理课程设计 08计算机1班 李臣Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计 08计算机1班 李臣Word文件下载.docx(17页珍藏版)》请在冰点文库上搜索。
4
功能模块的实现
10.12.26-12.30
5
系统测试,运行
宿舍
11.1.1-1.2
6
完成课程设计(论文)
11.1.2-1.3
五、应收集的资料及主要参考文献
[1]蒋本珊主编.计算机组成原理(第二版)[M].北京:
清华大学出版社.2002
[2]胡越明.《计算机组成与系统结构》电子工业出版社
[3]白中英主编.计算机组成原理科学出版社
[4]文哲蓉苟平章.计算机组成原理实验指导及习题解答甘肃教育出版社
发出任务书日期:
2010年12月10日指导教师签名:
计划完成日期:
2011年1月3日
目录
1.引言1
1.1设计目的1
1.2设计意义1
1.3设计内容1
2.设计过程分析与实现2
2.1模型机结构2
2.2指令编码3
2.2.1数据格式3
2.2.2指令格式3
2.2.3指令系统4
2.3微程序4
2.4应用程序7
2.5接线图8
3.调试及结果分析9
结论10
参考文献11
1.引言
1.1设计目的
1.掌握整机动态工作过程
2.了解微程序控制器的设计,构建指令系统
3.组建模型机,编写应用程序进行调试
1.2设计意义
本课程设计为学生提供了一个既动手又动脑,自学,查资料,独立实践的机会,也为将来设计程序积累一定的宝贵经验.让我们将本学期课本上的理论知识和实际有机的结合起来,锻炼实际分析问题和解决问题的能力。
1.3设计内容
1、设计指令系统
2、编写微程序
3、实验接线
4、编写应用程序,选择实现下列要求的一种功能
(1)输入两个一位十进制数,计算两数之和,并以BCD码输出
(2)输入一个一位十进制数,将其扩大5倍后以BCD码输出
(3)输入一个两位十进制数,求其负值的补码
(4)输入一个两位十进制数,输出八进制结果
(5)输入几个数,统计大于10的数的个数
(6)输入几个数,找出最大数
2.设计过程分析与实现
2.1模型机结构
图1模型机结构框图
图1中运算器ALU由U7—U10四片74LS181构成,暂存器1由U3、U4两片74LS273构成,暂存器2由U5、U6两片74LS273构成。
微控器部分控存由U13—U15三片2816构成。
除此之外,CPU的其它部分都由EP1K10集成(其原理见系统介绍部分)。
存储器部分由两片6116构成16位存储器,地址总线只有低八位有效,因而其存储空间为00H—FFH。
输出设备由底板上的四个LED数码管及其译码、驱动电路构成,当D-G和W/R均为低电平时将数据总线的数据送入数码管显示。
在开关方式下,输入设备由16位电平开关及两个三态传输芯片74LS244构成,当DIJ-G为低电平时将16位开关状态送上数据总线。
在键盘方式或联机方式下,数据可由键盘或串口输入,然后由监控程序直接送上数据总线,因而外加的数据输入电路可以不用。
2.2指令编码
2.2.1数据格式
本实验计算机采用定点补码表示法表示数据,字长为16位,其格式如下:
15
1413……0
符号
尾数
其中第16位为符号位,数值表示范围是:
-32768≤X≤32767。
2.2.2指令格式
(1)算术逻辑指令
设计9条单字长算术逻辑指令,寻址方式采用寄存器直接寻址。
其格式如下:
7654
32
10
OP-CODE
rs
rd
其中OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:
0111
1000
1001
1010
1011
1100
1101
1110
1111
指令
CLR
MOV
ADD
SUB
INC
AND
NOT
ROR
ROL
rs或rd
选定寄存器
00
Ax
01
Bx
10
Cx
9条算术逻辑指令的名称、功能和具体格式见表1。
(2)存储器访问及转移指令
存储器的访问有两种,即存数和取数。
它们都使用助记符MOV,但其操作码不同。
转移指令只有一种,即无条件转移(JMP)。
指令格式如下:
76
54
M
D
其中OP-CODE为操作码,rd为寄存器。
M为寻址模式,D随M的不同其定义也不相同,如下表所示:
指令说明
写存储器
读存储器
转移指令
寻址模式M
有效地址E
D定义
说明
E=(PC)+1
立即数
立即寻址
E=D
直接地址
直接寻址
11
E=100H+D
扩展直接寻址
注:
扩展直接寻址用于面包板上扩展的存储器的寻址。
(3)I/O指令
输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:
addr
其中,当OP-CODE=0100且addr=10时,从“数据输入电路”中的开关组输入数据;
当OP-CODE=0100且addr=01时,将数据送到“输出显示电路”中的数码管显示。
2.2.3指令系统
有14条基本指令,其中算术逻辑指令8条,访问内存指令和程序控制指令4条。
输入输出指令2条。
表1列出了各条指令的格式、汇编符号和指令功能。
表1指令格式
汇编符号
指令的格式
功能
MOVrd,rs
1000rsrd
rs→rd
ADDrd,rs
1001rs rd
rs+rd→rd
SUBrd,rs
1010rsrd
rd-rs→rd
INCrd
1011rdrd
rd+1→rd
ANDrd,rs
1100rsrd
rs∧rd→rd
NOTrd
1101rdrd
/rd→rd
RORrd
1110rdrd
┌──→rd→─┐
└──────┘
ROLrd
1111rdrd
┌──←rd←─┐
MOV[D],rd
001000rd
rd→[D]
MOVrd,[D]
001001rd
[D]→rd
MOVrd,D
000001rd
D→rd
JMPD
0000 10 00
D→PC
INrd,KIN
010010rd
KIN→rd
OUTDISP,rd
010001rd
rd→DISP
2.3微程序
机器指令的执行过程如下:
首先将指令在外存储器的地址送上地址总线,然后将该地址上的指令传送至指令寄存器,这就是“取指”过程。
之后必须对操作码进行P1测试,根据指令的译码将后续微地址中的某几位强制置位,使下一条微指令指向相应的微程序首地址,这就是“译码”过程。
然后才顺序执行该段微程序,这是真正的指令执行过程。
结合微程序流程图中需要完成的功能和对由四片74LS181芯片所组成的算术逻辑单元ALU的控制条件测试等的理解和认识,我们得到完整微指令表如下:
微代码表
微地址(八进制)
微地址(二进制)
微代码(十六进制)
000000
007F88
000001
005B42
02
000010
016FFD
06
000110
015FE5
07
000111
001000
005B4A
001001
005B4C
12
001010
014FFB
13
001011
007FC1
14
001100
01CFFC
20
010000
005B65
22
010010
005B47
23
010011
005B46
24
010100
007F15
25
010101
02F5C1
27
010111
018FC1
30
011000
0001C1
31
011001
0041EA
32
011010
0041EC
33
011011
0041F2
34
011100
0041F3
35
011101
0041F6
36
011110
3071F7
37
011111
3071F9
40
100000
0379C1
41
100001
010FC1
42
100010
011F41
45
100101
007F20
52
101010
0029EB
53
101011
9403C1
54
101100
0029ED
55
101101
6003C1
62
110010
0003C1
63
110011
0029F5
65
110101
B803C1
66
110110
0803C1
67
110111
207DF8
70
111000
000DC1
71
111001
107DFA
72
111010
73
111011
06F3C8
74
111100
FF73C9
75
111101
016E10
2.4应用程序
1:
实现的是输入一个一位十进制数,将其扩大5倍后以BCD码输出的功能,设计思路为:
扩大5倍,用BCD码输出要进行修正,修正值为10的倍数×
设输入值为x
k=xANDFEH,
修正值=k<
<
1+k<
程序如下:
000048;
INAX,KIN//AX=X
010081;
MOVBX,AX//BX=X
020021;
MOV[00FF],BX//[00FF]=X
0300FF;
0400F0;
ROLAX//AX=2X
0500F0;
ROLAX//AX=4X
060091;
ADDBX,AX//BX=5X
070024;
MOVAX,[00FF]//AX=X
0800FF;
090021;
MOV[00FE],BX//[00FE]=5X
0A00FE;
0B0005;
MOVBX,FEH//BX=FEH
0C00FE;
0D00C1;
ANDBX,AX//BX=k=xANDFEH
0E0021;
MOV[00FD],BX//[00FD]=K
0F00FD;
100024;
MOVAX,[00FD]//AX=K
1100FD;
1200F0;
ROLAX//AX=k<
130081;
MOVBX,AX//BX=k<
1400F0;
150091;
ADDBX,AX//BX=k<
2+k<
160024;
MOVAX,[00FE]//AX=5X
1700FE;
180094;
ADDAX,BX//AX=5X+K<
190082;
MOVCX,AX//CX=AX
1A0046;
OUTDISP,CX
1B0008
1C0000
2:
实现输入一个两位十进制数,求其负值的补码
设计思路:
十进制数要先转换为2进制
设数为x,十位数为t,个位数为z
m=t<
n=m+m<
2+z
将n取反+1
000048;
INAX,KIN
010049;
INBX,KIN
0200F0;
ROLAX
030021;
MOV[00FF],BX
0400FF;
050081;
MOVBX,AX
0700F0;
0800F0;
090094;
ADDAX,BX
A0025;
MOVBX[00FF]
B00FF;
C0094;
ADDAX,BX
D00D0;
NOTAX
E00B0;
INCAX
F0082;
MOVCXAX
1O0046;
110008;
JMP
2.5接线图
图2实验连线图
3.调试及结果分析
1.实验过程中遇到的错误及解决办法:
发现错误:
验证机器指令时,填入一个指令地址,读出的指令代码跟正确的指令地址不对应。
解决错误:
主存储器电路上有一条线没有接上,接上后验证结果正确。
2.数据测试与结果:
(1)测试数据:
结果:
0005
(2)测试数据:
结果:
0018
测试其它数据也得到了相应的正确结果。
3.结果分析:
编写正确的微程序,和正确的机器指令,再验证无误后,即可测试输入一个一位十进制数,将其扩大5倍后以BCD码输出了。
结论
通过本次的课程设计我了解了一个简单模型机的设计与实现,对计算机的基本组成、部件的设计、部件间的连接以及微指令执行的过程。
掌握整机动态工作过程,了解微程序控制器的设计,构建指令系统。
虽然在实践过程中遇到了很多的问题与困难,但都一一解决,本次课程设计对我将来的学习和实践起到了很大的帮助。
参考文献
心
得
体
会
本学期的课程紧凑而且紧张,在短短一学期内我们便将计算机组成原理一书学完,但掌握的并不全面,通过这次的课程设计,使我对课本上的东西进行了巩固与深入,使我更加深刻的学习了这门课程,在进行这次的实践中,我也遇到了很多的问题与挫折,但通过同学以及课本和老师的帮助下,将其一一解决,而解决处理问题的过程给了我很多的经验,让我在今后的学习中得以至用。
在今后的学习生活中,我会更加努力的将课本和课堂的知识运用到实践之中,提高个人的能力以及学习在面对困难时解决问题的方法,在今后我会更加努力的奋斗,使我的个人水平达到一个新的高度!
2011年1月3日
教
师
评
语
年月日
成
绩
及
签
名
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机组成原理课程设计 08计算机1班 李臣 计算机 组成 原理 课程设计 08
![提示](https://static.bingdoc.com/images/bang_tan.gif)