您好,欢迎访问三七文档
当前位置:首页 > 幼儿/小学教育 > 小学教育 > COP2000实现补码两位乘
沈阳航空航天大学课程设计报告-I-目录第1章总体设计方案...................................................................................................11.1设计原理.................................................................................................................11.2设计思路.................................................................................................................11.3设计环境.................................................................................................................1第2章详细设计方案...................................................................................................42.1算法与程序的设计与实现...................................................................................42.2流程图的设计与实现...........................................................................................5第3章程序调试与结果测试.......................................................................................93.1程序调试...............................................................................................................9列举出调试过程中存在的问题....................................................................................93.2程序测试及结果分析...........................................................................................9参考文献.........................................................................................................................10附录(源代码).......................................................................................................11沈阳航空航天大学课程设计报告错误!未指定书签。第1章总体设计方案-1-第1章总体设计方案1.1设计原理在计算机中,二进制的基本算术运算多是采用补码进行的。本次课设的补码两位乘是根据补码一位乘推导出来,补码两位乘可以使用和补码一位乘类似的硬件,而计算速度接近补码一位乘的两倍。本次课设需要构造补码两位乘规则表,计算中可以根据查表依次运算下去。表1补码两位乘规则表Yn+1YnYn-1Yn+1+Yn-2Yn-1操作0000部分积+0,右移2位001-2部分积加2[-X]补,右移两位0101部分积+[X]补,右移两位011-1部分积+[-X]补,右移两位1001部分积+[X]补,右移两位101-1部分积+[-X]补,右移两位1102部分积+2[X]补,右移两位1110部分积+0,右移两位1.2设计思路(1)被乘数X,乘数Y均以补码形式参加运算,乘法的每一步对乘数的两位进行,即右移两位。(2)乘数[Y]在计算时采用两位符号位,初始附加位添一个0。(3)被乘数[X]在计算时采用三位符号位。(4)部分积初始为0,计算过程中采用三位符号位。(5)每一步计算,按照乘数的最低三位的值查找操作规则表1,根据上一步的部分积和规则表的操作,计算本步的部分积。(6)每步操作后,将部分积和乘数右移两位,乘数右移后,原来的最低两位被移除出舍弃,其余各位位权依次下降。重复(4),但最后一步操作不右移。1.3设计环境利用伟福COP2000型计算机组成原理实验仪软件和计算机,在COP2000实验仪软件上编程实现补码两位乘。伟福COP2000实验仪软件的指令集分为如下大类:算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断沈阳航空航天大学课程设计报告错误!未指定书签。第1章总体设计方案-2-返回指令、输入输出指令。本程序所用到的相应的指令集如下:(1)算术逻辑运算指令ADDA,R?将寄存器R?的值加入到累加器A中ADDA,#II立即数#II加入到累加器A中SUBA,#II从累加器中减去立即数后加入到累加器A中ANDA,R?累加器A与寄存器R?的值ORA,R?累加器A或寄存器R?的值(2)数据传送指令MOVA,R?将寄存器R?的值送到累加器A中MOVA,MM将存储器MM地址中的值送到累加器A中MOVMM,A将累加器A中的值送到存储器MM地址中MOVR?,A将累加器A中的值送到寄存器A中MOVR?#II将立即数II送到寄存器R?中RRA累加器右移指令RLA累加器左移指令(3)跳转指令JCMM若进位标志置1,跳转到MM地址JZMM若零标志位置1,跳转到MM地址JMPMM跳转到MM如下为COP2000计算机组成原理实验软件截图:沈阳航空航天大学课程设计报告错误!未指定书签。第1章总体设计方案-3-图2COP2000运行环境沈阳航空航天大学课程设计报告错误!未指定书签。第2章详细设计方案-4-第2章详细设计方案2.1算法与程序的设计与实现本课设采用伟福COP2000实验仪软件和计算机实现补码两位乘功能,利用伟福COP2000的指令集编程实现。算法具体描述:(1)计算复杂性包括:+[X]补,+2[X]补,+[-X]补,+2[-X]补;(2)进行初始化,并且设置计数单元与建立特殊表。因为每次计算需要进行三次移位,所以用MOVA,#03H与MOV9AH,A来将循环次数存入内存单元。然后再进行初始化操作,将存储部分积的R1置零,再将用来存储特殊表的90H,97H内存单元置零。接下来再通过输入的被乘数判断其正负,如果被乘数是负,在前面两位加上1,如果是整数则无需操作,直接构造特殊表。(3)输入乘数后,将乘数移至最前端,执行LOOP2,首先设置移位次数,取出成熟后,判断乘数的后两位及附加位的值,根据所查的值访问特殊表,进而确定加数,之后将部分积与加数相加得到新的部分积,得到结果后,判断总循环是否结束,之后进行判断移位的操作,部分积的最高位如果是1,移位后仍然置1。部分积最低位如果是1,乘数右移之后最高位置1.(4)根据乘数后两位及附加位来确定R3,并通过R3间接访问特殊表。将访问的数据作为加数与部分积相加,然后判断两次循环是否结束,如果两次运算循环结束,则结束运算,否则将部分积与乘数同时右移两位再根据有效位来通过R3访问特殊表。相加移位运算结束后再将部分积与乘数同时右移一位,将数据位置有效,输出数据。沈阳航空航天大学课程设计报告错误!未指定书签。第2章详细设计方案-5-2.2流程图的设计与实现本部分包含实现中主要部分的流程图1.构造规则表:图2.2.1构造规则表流程图开始输入被乘数X存入R090H存入0,91H存入[X]补92H存入[X]补,93H存入2[X]补94H存入2[-X]补,95H存入[-X]补96H存入[-X]补,97H存入0结束沈阳航空航天大学课程设计报告错误!未指定书签。第2章详细设计方案-6-2.乘数处理操作:图2.2.2乘数处理操作流程图开始输入乘数Y左移两位并存入R2结束沈阳航空航天大学课程设计报告错误!未指定书签。第2章详细设计方案-7-3.运算否是图2.2.3运算流程图开始根据乘数后两位及附加位来确定R3,并通过R3简洁访问特殊表将访问到的数据作为加数与部分积相加判断两次循环是否结束将部分积与乘数同时右移两位结束沈阳航空航天大学课程设计报告错误!未指定书签。第2章详细设计方案-8-4.输出图2.2.4输出流程图开始将部分积与乘数同时右移一位将数据位置有效结束沈阳航空航天大学课程设计报告错误!未指定书签。第3章程序调试与结果测试-9-第3章程序调试与结果测试3.1程序调试调试过程中存在的问题:(1)在输入以字母开头的十六进制数时,没有在字母前加上0,导致语法错误。(2)在执行带进位右移操作是RRCA,因为之前没对指令集充分了解,导致用了错误的指令RRA。(3)在对部分积移位操作时,如果最高位是1时,移位最高位仍然置1,当时考虑不够充分,没有置1,导致程序出错。3.2程序测试及结果分析结果展示:输入:2B23输出:1308沈阳航空航天大学课程设计报告错误!未指定书签。参考文献-10-参考文献[1]唐朔飞计算机组成原理(第2版).北京.高等教育出版社.2008[2]白中英计算机组成原理(第4版).北京.科学出版社.2008沈阳航空航天大学课程设计报告错误!未指定书签。附录-11-附录(源代码)MOVA,#03HMOV9AH,AMOVA,#00HMOVR1,AMOV90H,AMOV97H,ALOOP:INMOVR0,AANDA,#20HJZM0MOVA,R0ORA,#0C0HMOVR0,AM0:MOVA,R0MOV91H,AMOV92H,ARLAMOV93H,AMOVA,R0CPLAADDA,#01HMOV95H,AMOV96H,ARLAMOV94H,ALOOP1:INRLARLAMOVR2,ALOOP2:MOVA,#02HMOV9BH,AMOVA,R2RRAANDA,#07HADDA,#90HMOVR3,AMOVA,R1沈阳航空航天大学课程设计报告错误!未指定书签。附录-12-ADDA,@R3MOVR1,AMOVA,9AHSUBA,#01HJZLASTMOV9AH,AMARK1:MOVA,R1ANDA,#80HJZLOOP3MOVA,R1RRCAJCLOOP4ORA,#80HMOVR1,AMOVA,R2RRAMOVR2,AMARK2:MOVA,9BHSUBA,#01HJZLOOP2MOV9BH,AJMPMARK1LOOP3:MOVA,R1RRCAJCLOOP5MOVR1,AMOVA,R2RRAMOVR2,AJMPMARK2LOOP4:ORA,#80HMOVR1,AMOVA,R2RRAORA,#80HMOVR2,AJMPMARK2LOOP5:MOVR1,A沈阳航空航天大学课程设计报告错误!未指定书签。附录-13-MOVA,R2RRAORA,#80HMOVR2,AJMPMARK2LAST:MOVA,R1RRCAJCLOOP6MOVR1,AANDA,#3FHOUTMOVA,R2RRAMOVR2,AANDA,#0F8HOUTJMPEDLOOP6:MOVR1,AANDA,#3FHOUTMOVA,R2RRAORA,#80HOUTED:END沈阳航空航天大学课程设计报告-14-课程设计总结:课设本身的目的便是为了考察学生的个人学习和动手能力,本次课程设计对我来说是个很大的挑战,因为我个人认为我的计算机组成原理这门课程学的并不是很好,好在查阅了很多资料,也让我充分了解了补码两位乘的原理
本文标题:COP2000实现补码两位乘
链接地址:https://www.777doc.com/doc-2906866 .html