PAGE
沈阳航空航天大学
计算机组成原理课程设计报告
院系
计算机学院
专 业
题目
定点原码两位乘法程序的设计与实现
班级
姓 名
学号
指导教师
以下内容由指导教师填写
序号
评价项目
评分
满分
得分
1
课设态度,查阅资料和自我学习的能力。
10
2
课设题目的理解情况和完成情况,以及仿真的正确性与完善性。
40
3
检查过程中问题回答的准确程度
20
4
课程设计报告的格式和内容,侧重考虑内容充实度、图表齐全度、对设计和实现过程的描述详实度、仿真和测试的全面度等方面。
30
累计得分
指导教师评语:
课设成绩:
指导教师签名
日期
年 月 日
注:成绩评定采用五级记分制。优秀(90~100分)、良好(80~89分)、中等(70~79分)、及格(60~69分)、不及格(60分以下)
课程设计总结
通过本次课程设计,我更加了解了关于原码二位乘的一系列算法,以及原码二位乘的问题。课程设计中,主要遇到以下几个问题:
1.开始课程设计时,虽学习过原码二位乘原理,但是在初步制定设计方案时,遗忘了许多,以至于在设计时,总是想不起来是如何运行的,在查阅相关资料后,深刻的理解了原码二位乘的原理,步骤,为接下来的设计打下了充实的基础。
2.一开始指定的方案,在求x,y绝对值时,考虑的太过单一,只想着不论正负,都只取其后7位,不考虑符号位,将其符号位与1相或,并将其存至所对应的寄存器中。但是在运行过程中,发现还要求负的x的补码,所以,必须有判断符号位的操作,并且,最后运算结束后,结果的符号和x,y的符号有关。因此,需对x,y都进行判断符号位取绝对值操作。
3.改正以上问题后,发现最后不会停止,会进入一个死循环。于是,必须有一个判断循环截止的条件,右移4次循环应该结束。所以,加入一个循环,右移一次,对应的判断循环的数字减一,初始为4,直至减至0,循环结束。
4.然后是部分积问题,每右移一次,部分积变化一次。但是右移的过程中,并不知道右移过来的是0还是1,所以,必须加入一个判断正负的操作,以此来判断右移位是0还是1。
5.最后是C的问题,要根据C是否为1来判断最后是否应当加x,开始时,因为未加该操作,导致有的数据正确,有的错误。加入一个判断右移后最后两位是何数据的操作,来判断运行结束后是否应当加x。
在本次课程设计过程中,我更加清楚的了解了COP2000的工作原理及模拟方法,以及各个操作所代表的意思。本次课程设计不仅巩固了我平时的课本知识,还极大地锻炼了我自己动手,自己设计,执行实现的能力。我从中学到了很多,更加清楚的明白了要想完完全全的理解一个知识点,不是靠简简单单的听课就能理解的,而我们上课听讲的也只是些知识点的原理,只有深入了解该知识点的运用并亲自动手做才能真真正正的理解并强化巩固该知识点。
目 录
TOC \o "1-3" \h \z \u 9176 1 题目介绍 2
16491 1.1题目内容 2
16651 1.2设计思路 2
2515 1.3设计环境 3
9840 2 详细设计方案 5
9964 2.1整体设计方案 5
12533 2.2模块设计 6
1297 3 测试与验证 14
13318 3.1 程序运行结果 14
24443 3.2 测试分析 15
17803 参考文献 17
26046 附 录 18
PAGE 5
1 题目介绍
1.1题目内容
采用伟福COP2000实验箱,设计并实现定点原码两位乘法器。
该题目是设计并实现定点原码两位乘法器,要求使用伟福COP2000 实验箱并使用实验箱提供的汇编语言完成该程序的设计与实现。使用计算机连接伟福COP2000 实验箱,用试验箱的开关输入两个八位二进制定点原码数到编写的程序中(首位为符号位),通过计算机运行程序,计算出两个定点原码数的乘积,运算的结果在寄存器中显示。要求独立设计、编程、调试、通过指导教师现场验收并撰写课程设计报告。
1.2设计思路
(1)准备工作
输入一个八位二进制定点原码数X,存入到0F1地址中,计算求出其绝对值X*,将其存入到寄存器R1中作为被乘数。
再输入一个八位二进制定点原码数Y,存入到0F2地址中,计算求出其绝对值Y*,将其存入到寄存器R2中作为乘数。
给寄存器R3赋值00H作为部分积P。
在0F3地址中存入00H记录是否欠位。
在F4地址中存入04H来判断循环结束标志。
计算求出[-X*]补存入0F0地址中。
计算求出2X*存入到0F5地址中。
()计算工作
首先判断八位二进制数Y*的后两位:如果为“01”则在P上加X