计算机组成原理课程设计报告Word文档下载推荐.docx
- 文档编号:21759136
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:12
- 大小:186.67KB
计算机组成原理课程设计报告Word文档下载推荐.docx
《计算机组成原理课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
2、设计目标
在设计完本程序后,所设计模型机能够完成从一个外设输入一个数到指定的寄存器中,另外输入立即数并将其存入另一个、寄存器中,两数进行进位相加并将结果保存到第一个寄存器,输出结果,并显示。
另外,实现无条件跳转至开始。
3、指令格式
助记符号
机器指令码
功能
IN
00000000
Input->
R0
ADCImm
11100000XXXXXXXX
R0+Imm+CY->
STAaddr
00100000XXXXXXXX
R0->
[addr]
OUTaddr
00110000XXXXXXXX
[addr]->
LED
JMPaddr
01000000XXXXXXXX
PC
4、设计微指令
(1)定义指令码,及定义一个下地址为08H
指令
指令编码
微地址
08
ADC
00010000
09
STA
00100000
10
OUT
00110000
11
JMP
01000000
12
(2)设计微指令编码表
S3
S2
S1
S0
M
Cn
WE
A9
A8
A
B
C
UA5-UA0
00
1
01
02
03
04
05
0A
06
07
0B
0D
0E
0F
0C
(3)微程序流程图
(4)由编码得到微程序
根据以上编写的微程序,以及微指令代码化的方法得到的微程序代码为:
$M00018001
$M0101ED82
$M0200C048
$M08001001
$M0901ED83
$M0300B004
$M0401A205
$M05919A01
$M0A01ED86
$M0600E007
$M07028201
$M0B01ED8D
$M0D00E00E
$M0E00900F
$M0F030201
$M0C01ED90
$M1000D181
(5)写工作程序
$P0000
$P0110
$P0222
$P0320
$P0401
$P0530
$P0601
$P0740
$P0800
(6)建立联机操作文件
为了从PC机下载工作程序和微程序,需要建立联机操作文件,该文件是普通的文本文件,扩展名为TXT,可用记事本来建立的,要求:
a、测试用的工作程序排在文件的前面,每个内存地址及代码占一行;
b、微指令代码排在文件的后面,每个微地址及微指令代码占一行;
(7)按照实验电路图连接实验线路
实验采用复杂模型机系统连线图,电路图如下:
(8)运行
(a)系统与PC机联机
实验系统安装有一个标准的DB型9针RS-232C串口插座,使用配套的串行通信电缆分别插在实验系统及PC机的串口,即可实现系统与PC机的联机操作。
(b)下载工作程序和微程序
使用唐都软件将工作程序和微程序下载到实验箱的内存和控制存储器中。
其中,自带电线的实验箱用NCMP53软件,启动软件后使用F4[装载]进行下载;
外接电源线的实验箱用CMPP软件,启动软件后在菜单中选择[转储]/[装载]进行下载。
(c)运行
实验原理图,及数据流程图如下:
(9)调试以及调试过程(把写好的程序下载到唐都实验箱,打开软件复杂模型机的原理图,按步骤点击单步运行,查看运行的指令和微指令的过程)
调试发现问题:
a、刚开始时点击时,机器不运行。
b、DR1与DR2相加结果不正确。
c、从R0到内存STA存数指令的存数操作有误,R0-B打开的同时把AR的LDAR也打开了,造成指向内存单元改变。
也就造成输出时的数据不正确和。
d、修改上一条错误后,误把R0数据存在01单元,覆盖了原来的指令,当跳转指令跳转回到原来程序的开头时,执行第二次就发生了错误。
所以针对以上问题,都一一地找到相应的错误之处和解决方法:
a1、连线有错误,检查后发现错误之处,并改正
b2、改变s3到s0,改为1001(带进位加法)
c3、由于疏忽造成,修改对应的LDAR开关编码
d4、修改$P程序,存到没用的内存
上述问题解决之后,程序便可运行出结果。
(10)运行结果
在上图中会执行INPUT到R0,然后从内存中取出一个数放到DR2中,R0内的数放到DR1中,DR1+DR2+cy放到R0中,再将R0内的数显示到LED上。
实验二:
设计一个具有带进位加法和条件跳转的模型机
本题目设计的是一台具有输入、输出、数据传送、带进位加法、条件跳转,停机功能的模型计算机,并写出工作程序和测试数据验证所设计的指令系统。
2、指令格式
指令格式
MOVrs,rd
XXXXRsRd
Rs->
Rd
ADCrs,rd
Rs+Rd+CY->
BZCD
00000000
D
当cy=1或z=1时,D->
PC
否则,顺序执行。
INrd
XXXX01Rd
SW->
rd
OUTrd
XXXX10Rd
Rd->
HALT
XXXX0000
停机
3、设计微指令
(1)定义一个下地址为20H
23
MOV
22
21
20
24
01010000
25
(2)设计微指令
(3)画出微程序流程图
(4)微程序代码
$M0200C060
$M200180C1
$M1101ED83
$M0300D181
$M2101A404
$M0401B205
$M22019201
$M23001001
$M24030201
$M25018025
(5)设计工作程序代码,以测试微程序
$P0035
$P0124
$P0235
$P0314
$P0444
$P0500
$P0607
$P0750
(6)按照实验一建立联机文档并按照书本《计算机组成原理课程设计》的附录2(系统连线参考图)进行连线。
(7)运行与调试
把程序下载但唐都实验箱进行运行和调试。
通过调试发现的问题:
A、不知道R1、R2、R0三个寄存器的关系(请教老师解决)。
B、运行第一条指令后便停滞,不再执行下面的操作。
C、解决a后,从输入模块输入到R1或R2都不能实现。
D、条件跳转指令后,执行非设计程序,程序跑飞了。
通过前面的几次实验,已经获得部分解决方法的经验
B1、检查连线未能发现问题,估计可能是哪里接触不良,故而弃之,换实验箱,重新调试,发现可以运行的。
C2、自己未能找出错误所在,请教老师,指出连线上,我们仍采用的是原来电路图,因而没有把R1、R2寄存器连到电路中。
D3、未设置好跳转的方向,最后使其跳转到停机指令,使其处于停机状态。
(8)运行结果
程序会先从SW读一个数放到R1中,然后将R1内的数转移到R0中,然后将R0内的数放到DR1,R1中的数放到DR2,然后DR1+DR2+cy放到R0中,然后将R1内的数显示到LED上,下一步就进入了停机的死循环。
实验总结与心得体会
经过两三天的课程设计,给我个人的感觉有进步、好玩。
为何如此说呢?
对于我个人来讲,我是比较喜欢实验课的,因为一来实验课比理论课有意思一点,二来,通过现象和操作更容易理解理论的内容。
更何况,实践是检验真理的唯一标准,只有通过实践才能更好的理解和记忆我们的理论知识。
通过此次课程设计,我更深入的了解到了计算机工作的过程和原理,特别是在指令的执行。
虽然原来在理论课上讲解过,但是单单从字面上我一直没有完全搞明白,而实验却让人顿悟。
而课程设计又给我们提供了一个良好的学习机会,我们可以和老师或者同学尽情地交流,发表自己的观点,在相互交流讨论合作中,相互促进,共同进步,提高了学习的效率和学习的激情。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 课程设计 报告