计算机接口课程设计实验报告.docx

上传人:b****6 文档编号:7985611 上传时间:2023-01-27 格式:DOCX 页数:12 大小:279.65KB
下载 相关 举报
计算机接口课程设计实验报告.docx_第1页
第1页 / 共12页
计算机接口课程设计实验报告.docx_第2页
第2页 / 共12页
计算机接口课程设计实验报告.docx_第3页
第3页 / 共12页
计算机接口课程设计实验报告.docx_第4页
第4页 / 共12页
计算机接口课程设计实验报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

计算机接口课程设计实验报告.docx

《计算机接口课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《计算机接口课程设计实验报告.docx(12页珍藏版)》请在冰豆网上搜索。

计算机接口课程设计实验报告.docx

计算机接口课程设计实验报告

计算机接口技术课程设计报告

班级:

专业:

学号:

姓名:

报告目录结构:

一、实验目的

二、实验要求

三、课程设计使用的设备(环境)

四、实验原理:

五、实验内容及大概步骤

六、实验结果

七、总结分析与心得

一、实验目的

1.在实验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步掌握微程序设计控制器的基本方法并了解指令系统与硬件结构的对应关系;

2.通过控制器的微程序设计,综合理解计算机组成原理课程的核心知识并进一步建立整机系统的概念;

3.培养综合实践及独立分析、解决问题的能力。

二、实验要求

针对COP2000实验仪,从详细了解该模型机的指令/微指令系统入手,以实现乘法和除法运算功能为应用目标,在COP2000的集成开发环境下,设计全新的指令系统并编写对应的微程序;之后编写实现乘法和除法的程序进行设计的验证。

三、课程设计使用的设备(环境)

1.硬件l

COP2000实验仪lPC机

2.软件l

COP2000仿真软件

四、实验原理:

1.该模型机指令系统的特点:

 

① 总体概述 

COP2000模型机包括了一个标准CPU所具备所有部件,这些部件包括:

运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。

其中运算器和中断控制电路以及跳转控制电路用CPLD来实现,其它电路都是用离散的数字电路组成。

微程序控制部分也可以用组合逻辑控制来代替。

 

   模型机为8位机,数据总线、地址总线都为8位,但其工作原理与16位机相同。

模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数。

指令码的最低两位用来选择R0-R3寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。

而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。

在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。

模型机有24位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。

模型机的缺省的指令集分几大类:

算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入/输出指令。

②模型机的寻址方式:

2.微指令控制信号的功能 

3.计算机中实现乘法和除法的原理

(1)无符号乘法

①实例演示(即,列4位乘法具体例子演算的算式):

被乘数为1001(二进制),即为十进制的9;乘数为0110(二进制),即为十进制的6。

那么,可以通过笔算得到:

1001×0110=00110110即十进制运算结果为:

9×6=54

无符号乘法的实例演示如图1所示:

②硬件原理框图:

5、实验内容及大概步骤

(1)无符号乘法硬件功能分配

符号乘法对应于COP2000实验仪的硬件具体分配使用情况如下表所示:

表*无符号乘法的硬件分配情况

(2)COP2000设计新的指令集及微指令

表*无符号乘法和除法的新指令集

表*无符号乘法的新微指令集

(3)用设计完成的新指令集编写实现无符号二进制乘法、除法功能的汇编语言程序

4位乘法的算法流程图与汇编语言程序清单:

MOVR0,#00H;初始化部分积

MOVR1,#09H;初始化被乘数

MOVR2,#06H;初始化乘数

LOOP:

TESTR2,#0FH;测试乘数是否为0

JZLAST;是0跳转,程序结束

TESTR2,#01H;测试乘数末位时候为0

JZNEXT;是0跳转,不用加被乘数

MOVA,R1;被乘数送累加器

ADDR0,A;被乘数加到部分积

NEXT:

SHLR1;被乘数左移一位

SHRR2;乘数右移一位

JMPLOOP;跳转到下一次测试

LAST:

OVER;程序结束

无符号乘法流程图如下:

6、实验结果

实验输入16进制乘数09H,,打入寄存器R1,与被乘数07H,打入寄存器R2,程序最后运行正确,结果保存在R0中,寄存器R0的结果为3FH。

证明整个程序正确执行,实验运行发现,被乘数为零时,程序也能就很快做出结果为零的判断。

运行结果截图如下:

 

实验收获及总结分析:

在设计开始时乘法的算法设计为一个初始值为4的计数器,每次加法操作后减1直至计数器为零结束,后来考虑到当乘数的操作位为零时,没有必要进行加零操作,于是设计了跳转指令及程序,由此想到乘数开始可能是零,所以又添加了在开始判断乘数是否为零的操作。

关于这个操作,我设计了一个“TESTR?

#II”指令,用来测试乘数。

我设计的程序不只可以实现4位乘以4位的乘法,只要是结果为八位的乘法都可以计算。

但是本程序都可以计算,但是本程序还是有一部分缺陷本程序没有判断被乘数时候为0,如果被乘数还是0的话也要计算,做了很多无谓的运算。

而且本程序是根据乘数的位数执行循环,要是可以做个函数找出被乘数和乘数位数减少的做乘数,这样就会缩短程序运行的时间。

提高程序运行的效率。

对于“TESTR?

#II”指令,该指令表示的是寄存器R?

“与”立即数II,只改变标志位,

并不改变R?

中的数值。

7、总结分析与心得

(1)在编辑新的指令系统时我发现把指令助记符还是要命名的易于理解与记忆,在最初做指令系统设计时,我随便起字母名字,结果发现编写微程序时自己也忘了编辑的新指令是什么含义。

最后不得不重新一步一步看,花费了较多的时间,所以,对于编写汇编语言及指令程序,指令助记符也是相当重要的,正确有效的编写会给自己带来方便,反之,则会影响自己的编写程序的效率。

(1)在这次计算机接口的课程设计中,我不仅复习了以前学过的计算机组成原理知识,还能把学到的知识应用于实验当中,更加巩固了我掌握的汇编语言知识。

另外,从实验环节当中,我还学到了一些新的知识,如,新指令系统的编写,这个是书本上从前没有的。

而且,我在反复思考的过程中,提高了独立设计思维的灵敏度,以及增强了找出及解决问题的方法和能力。

通过这次课程设计,既锻炼了我的动手能力,也锻炼了我自主学习的能力。

(3)还有一点让我知道了,做实验要细心,要努力需要不断的尝试。

在这次实验我在设计跳转指令的时候,但是没有注意,然后再设计完以后发现对应的指令根本不能发挥相应的功能。

我也不知道错在哪,对应的微指令集也没有错。

让我百思不得其解。

后来我调整了指令的顺序,发现有一部分能实现相应的功能,但是还是有一些实现不了功能。

我查阅了对应的实验指导书,发现JMP的指令的第3、2位要10或者11才能实现功能,而JC需要00,JZ需要01,我调整了指令的位置,实现了功能。

我突然感觉到只是一些小的细节,却会对我们造成一个很严重的后果。

所以我们要心细,不要忽略每个细节,这样我们才会用更大的进步会取得更大的成功。

(4)在这最后,我想要说的是,无论做什么实验,都要有一个恒心,只要你抱着一个我一定要完成它的决心,只要你勇于尝试与学习,你一定会比完成实验获得更多的知识。

在实验当中,犯错与遇到问题是在所难免的,但是我们要勇敢的克服这些困难,比如,可以借用外界的工具,XX搜索、图书馆等等。

一旦你克服了这些困难,你就会发现问题是如此简单,争取仔细做好每一步,最后实验自然会成功完成。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1