COP2000实现补码两位乘.doc.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
COP2000实现补码两位乘.doc

目 录 第1章 总体设计方案 1 1.1 设计原理 1 1.2 设计思路 1 1.3 设计环境 1 第2章 详细设计方案 4 2.1 算法与程序的设计与实现 4 2.2 流程图的设计与实现 5 第3章 程序调试与结果测试 9 3.1 程序调试 9 列举出调试过程中存在的问题 9 3.2 程序测试及结果分析 9 参考文献 10 附 录(源代码) 11 第1章 总体设计方案 设计原理 在计算机中,二进制的基本算术运算多是采用补码进行的。本次课设的补码两位乘是根据补码一位乘推导出来,补码两位乘可以使用和补码一位乘类似的硬件,而计算速度接近补码一位乘的两倍。本次课设需要构造补码两位乘规则表,计算中可以根据查表依次运算下去。 表1 补码两位乘规则表 Yn+1YnYn-1 Yn+1+Yn-2Yn-1 操作 000 0 部分积+0,右移2位 001 -2 部分积加2[-X]补,右移两位 010 1 部分积+[X]补,右移两位 011 -1 部分积+[-X]补,右移两位 100 1 部分积+[X]补,右移两位 101 -1 部分积+[-X]补,右移两位 110 2 部分积+2[X]补,右移两位 111 0 部分积+0,右移两位 设计思路 被乘数X,乘数Y均以补码形式参加运算,乘法的每一步对乘数的两位进行,即右移两位。 乘数[Y]在计算时采用两位符号位,初始附加位添一个0。 被乘数[X]在计算时采用三位符号位。 部分积初始为0,计算过程中采用三位符号位。 每一步计算,按照乘数的最低三位的值查找操作规则表1,根据上一步的部分积和规则表的操作,计算本步的部分积。 每步操作后,将部分积和乘数右移两位,乘数右移后,原来的最低两位被移除出舍弃,其余各位位权依次下降。重复(4),但最后一步操作不右移。 设计环境 利用伟福COP2000型计算机组成原理实验仪软件和计算机,在COP2000实验仪软件上编程实现补码两位乘。伟福COP2000实验仪软件的指令集分为如下大类:算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入输出指令。 本程序所用到的相应的指令集如下: (1)算术逻辑运算指令 ADD A, R? 将寄存器R?的值加入到累加器A中 ADD A,#II 立即数#II加入到累加器A中 SUB A,#II 从累加器中减去立即数后加入到累加器A中 AND A,R? 累加器A与寄存器R?的值 OR A,R? 累加器A或寄存器R?的值 (2)数据传送指令 MOV A,R? 将寄存器R?的值送到累加器A中 MOV A,MM 将存储器MM地址中的值送到累加器A中 MOV MM,A 将累加器A中的值送到存储器MM地址中 MOV R?,A 将累加器A中的值送到寄存器A中 MOV R?#II 将立即数II送到寄存器R?中 RR A 累加器右移指令 RL A 累加器左移指令 (3)跳转指令 JC MM 若进位标志置1,跳转到MM地址 JZ MM 若零标志位置1,跳转到MM地址 JMP MM 跳转到MM 如下为COP2000计算机组成原理实验软件截图: 图2 COP2000运行环境 第2章 详细设计方案 2.1 算法与程序的设计与实现 本课设采用伟福COP2000实验仪软件和计算机实现补码两位乘功能,利用伟福COP2000的指令集编程实现。 算法具体描述: 计算复杂性包括:+[X]补,+2[X]补,+[-X]补,+2[-X]补; 进行初始化,并且设置计数单元与建立特殊表。因为每次计算需要进行三次移位,所以用MOV A,#03H与MOV 9AH,A来将循环次数存入内存单元。然后再进行初始化操作,将存储部分积的R1置零,再将用来存储特殊表的90H,97H内存单元置零。接下来再通过输入的被乘数判断其正负,如果被乘数是负,在前面两位加上1,如果是整数则无需操作,直接构造特殊表。 输入乘数后,将乘数移至最前端,执行LOOP2,首先设置移位次数,取出成熟后,判断乘数的后两位及附加位的值,根据所查的值访问特殊表,进而确定加数,之后将部分积与加数相加得到新的部分积,得到结果后,判断总循环是否结束,之后进行判断移位的操作,部分积的最高位如果是1,移位后仍然置1。部分积最低位如果是1,乘数右移之后最高位置1. 根据乘数后两位及附加位来确定R3,并通过R3间接访问特殊表。将访问的数

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档