BCD码的加法探究.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
沈阳航空航天大学 课 程 设 计 报 告 课程设计名称:计算机组成原理课程设计 课程设计题目:COP2000实现BCD码的加法 院(系):计算机学院 专 业:计算机科学与技术 班 级:3401010x 学 号:20130401010xx 姓 名:张伟 指导教师:杨华 完成日期:2016年 1 月 15 日 目 录 第1章 总体设计方案 3 1.1 设计原理 3 1.2 设计思路 3 1.3 设计环境 3 第2章 详细设计方案 5 2.1 算法与程序的设计与实现 5 3.程序核心部分流程图。如图2.2.3所示 6 图2.2.3 核心部分流程图 7 第3章 程序调试与结果测试 8 3.1 程序调试 8 3.2 程序测试及结果分析 8 参考文献 10 附 录(源代码) 11 第1章 总体设计方案 设计原理 课程设计要求加数、被加数以及和都采用压缩的BCD码,都是6位十进制数,但是从COP2000上面只能输入两位十六进制数,即8位二进制数。所以在设计时将6位十进制数分为3组,每组2位,进行相加,找6个存储单元对3组数的低位运算和高位运算进行存储,最后两两求和,将最低两位、中间两位、最高两位结果分别放入r3、r2、r1中。设计时最核心的四个问题我认为分别是将最低位数据左移四位,将数据与F0相与,设计计数单元与进位位存储单元。 设计思路 COP2000上面每次只能输入两个十六进制数,即8个二进制数,现在欲将6位十进制数输入,只能分成3组,3组分别相加。在进行加法时,要考虑到进位,但是COP2000只能判别最高位是否有进位,所以在进行加法时,将最低位数据左移4次,放到最高位,便可以顺利解决判断进位问题。在进行每组数据最高位加法时,要将数据与0F0H相与,使低四位清零。在进行加法时,由于考虑到进位问题,所以设计f7单元存储进位,进位存储单元初始时置0,每当产生进位时, MOV A,#10H MOV 0F0H,A 使进位单元置1,所以每进行加法时,都要将进位单元数据相加。由于数据是分成三组进行,所以在进行运算时需要进行选择,初始时将计数单元置0,进行最后两位运算时计数单元加1,进行中间两位运算时,置数单元继续加1,最高两位运算在加1,当进行选择时,使计数单元数据减去2,当为最低两位时,1减2发生借位,进而执行JC所指向的地址。当计数单元数据为2减去2时,结果等于0,进而执行JZ所指向单元,当计数单元数据为3时,减去2,结果为1,不执行JC与JZ的指令,执行JMP所指向的地址。三组数据的低位高位结果分别放入6个存储空间中,最后R0存储最高位两位数据计算结果,R1存储中间两位数据计算结果,R3存储最低两位数据计算结果。 设计环境 COP2000实验平台对应的模型机为8位机,数据总线和地址总线均为8位。包括一个标准CPU所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、右移门R、直通门D、寄存器组R0~R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器。 在COP2000仿真软件上实现编程,所应用的编程语言为汇编语言。在伟福试验仪中有相关的模型机指令集分为几大类:算术运算指令、数据传输指令、移位指令、逻辑运算指令、跳转指令、中断返回指令、输入输出指令。 本程序所用到的相应的指令集 (1)算术逻辑运算指令 ADD A, R?------------将寄存器R?的值加入累加器A中 ADD A,#II---------- 立即数#II加入累加器A中 SUB A,#II-----------从累加器中减去立即数后加入累加器A中 AND A,#II-----------累加器A“与”立即数II (2)数据传送指令 MOV A,R?------------将寄存器R?的值送到累加器A中 MOV A,MM------------将存储器MM的地址的值送到累加器A中 MOV MM,A------------将累加器A的值送到存储器MM的地址中 MOV R?,#II------------将立即数II存放到寄存器R?中 MOV R?,A------------将累加器A中的值送到寄存器A中 (3)移位指令 RR A----------------累加器A右移 RL A----------------累加器A左移 (4)跳转指令

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档