基于cop的定点无符号数乘法的实现

基于cop的定点无符号数乘法的实现

ID:12544221

大小:308.50 KB

页数:16页

时间:2018-07-17

基于cop的定点无符号数乘法的实现_第1页
基于cop的定点无符号数乘法的实现_第2页
基于cop的定点无符号数乘法的实现_第3页
基于cop的定点无符号数乘法的实现_第4页
基于cop的定点无符号数乘法的实现_第5页
资源描述:

《基于cop的定点无符号数乘法的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:基于COP2000的定点无符号数乘法的实现目录第1章总体设计方案11.1设计原理11.2设计思路11.3设计环境1第2章详细设计方案32.1总体方案的设计32.1.1总体方案的逻辑图42.2功能模块的设计52.2.1数据输入模块的设计62.2.2乘数末位判断与移位模块的设计62.2.3乘积结果显示模块的设计7第3章程序调试与结果测试93.1程序调试93.2结果测试9参考文献11附录(源程序)12-I-第1章总体设计方案1.1设计原理两个8位无符号数相乘,所乘结果是16位,采用原

2、码一位乘,在计算时,用乘数寄存器的最低位来控制部分积是否与被乘数相加,然后右移部分积和乘数,同时乘数寄存器接收部分积右移出来的一位,完成运算后,部分积寄存器保存乘积的高位部分,乘数寄存器中保存乘积的低位部分。1.2设计思路被乘数与乘数都是8位,所以相乘的结果是16位。每个寄存器的范围是8位,所以乘积的结果用两个寄存器来存储表示。实验开始时将实验数据从实验箱的开关输入到R0、R1、R2、R3四个寄存器中,部分积存放在R0,8位乘数放在R1,8位被乘数放在R2,R3控制乘数与被乘数都是8位数。在计算时,首先判断乘数末位上的值是1还是0,决定被

3、乘数是否与部分积相加,然后判断部分积的末位,因为右移时部分积的末位会溢出,乘数右移时要接收由部分积溢出来的数,所以根据判断来决定乘数右移后的高位是1还是0。运算结束时16位乘积结果的高8位从R0调出,低8位从R1调出,两个数据组成最终结果。1.3设计环境本实验采用COP2000实验箱和COP2000仿真软件。在COP2000试验仪上实现编程,所应用的编程语言为汇编语言。在伟福试验仪中有相关的模型机指令集分为几大类:算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入输出指令。此为COP2000计算机组成原理实验

4、软件截图:-14-图1.1COP2000计算机组成原理集成调试软件-14-第2章详细设计方案2.1总体方案的设计(1)初始化以及输入乘数与被乘数首先是将部分积初始化送到寄存器R0中,乘数放入R1,被乘数放入R2。直接进行到地址LOOP部分。(2)运算过程首先从乘数最低位开始判断,将R1放于寄存器A中并和立即数#01H相与,此时可以判断乘数最低位是0或1。基于语句JZNEXT,当前面的判断结果是0,跳转到地址NEXT;否则顺序执行程序。跳转到NEXT,即当程序乘数最低位为0时,将R0不变;顺序执行程序,即当乘数最低位为1时,将R0与R2相加

5、,判断最低位是0还是1,当判断结果是0,跳转到NEXT1,否则顺序执行程序,所得到的结果送到寄存器R0中,存入数据后无条件跳转到NEXT2,判断是否是最后一位。然后进行移位操作。在移位前需要考虑R0的最低位是0或1,因为部分积移到的数值也是结果的部分,就是保存在结果低位的部分,也就是寄存器R1中,所以要保留移掉部分,此时判断R0最低位。利用语句JZNEXT1,当前面的判断结果是0,标志位为1,跳转到地址NEXT1;否则顺序执行程序。当部分积最低位是1时,右移R0,进行保存;当部分积最低位是0时,右移R0、R1,进行保存。每次循环结束都要进

6、入结果输出部分JZNEXT3。(3)显示乘积的结果最后循环控制程序结束。因为乘法的结果是16位,而此时16位结果的高八位存放在R0,低八位存放于R1。显示结果为R0显示的数据加上R1显示的数据。-14-2.1.1总体方案的逻辑图R0部分积BUBUFENJI8位加法器R2被乘数R1乘数移位和加控制右移OUT输出结果移位8次右移加法器图2.1总体方案的逻辑图如上逻辑框图2.1中所示,R0、R1、R2均是8位的寄存器,其中R0存放部分积的原码,R1存放乘数的原码,R2存放被乘数的原码。移位和加控制电路受R1和R0的末位控制(当R1末位是1时,R

7、0和R2相加;当R1末位是0时,R0不变。当R0末位是0时,R0和R1右移一位;当R0末位是1时,R0右移一位,R1右移一位加10000000)。然后将R0右移移8位加上R1,得到乘法16位结果。-14-2.2功能模块的设计开始乘数最低位为1?YN部分积与被乘数相加部分积不变部分积最低位为1?NY部分积右移乘数右移并加10000000部分积右移乘数右移将部分积右移八次加上乘数寄存器里的数,得到乘积结果循环结束?NY结束输入部分积、乘数和被乘数结果输出图2.2功能模块设计图2.2.1数据输入模块的设计将部分积初始化送到寄存器R0中,乘数放入

8、R1,被乘数放入R2。应用MOV-14-R0,#IIH语句将三个数据分别输入到R0、R1、R2。2.2.2乘数末位判断与移位模块的设计(1)功能描述判断乘数末位是否为1,应用MOVA,R1和A

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。