网站大量收购闲置独家精品文档,联系QQ:2885784924

BCD码的加法.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BCD码的加法课案

沈阳航空航天大学 课 程 设 计 报 告 课程设计名称:计算机组成原理课程设计 课程设计题目: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)

jiayou10 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档