COP2000实现BCD码的加法

COP2000实现BCD码的加法

ID:47546416

大小:119.00 KB

页数:16页

时间:2020-01-14

COP2000实现BCD码的加法_第1页
COP2000实现BCD码的加法_第2页
COP2000实现BCD码的加法_第3页
COP2000实现BCD码的加法_第4页
COP2000实现BCD码的加法_第5页
资源描述:

《COP2000实现BCD码的加法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:COP2000实现BCD码的加法院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:完成日期:2013年1月11日15沈阳航空航天大学课程设计报告目录第1章总体设计方案21.1设计原理21.2设计环境2第2章详细设计方案32.1算法与程序的设计与实现32.2流程图的设计与实现42.2.1总流程图42.2.2最低两位求和流程图52.2.3中间两位求和流程图62.2.4最高两位求和流程图7第3章程序调试与结果测试8

2、3.1程序调试83.2程序测试及结果分析8参考文献9附录(源代码)1015沈阳航空航天大学课程设计报告第1章总体设计方案1.1设计原理欲实现两个压缩BCD码的加法,且被加数,加数,和都为六位十进制数,需将两个六位十进制数输入到内存中,再分别实现加数和被加数的最低两位,中间两位,最高两位的带进位加法,并且依次将其进行十六进制到十进制的转换,输入到内存中暂存,最后将六位十进制的和输出到寄存器中显示出来。1.2设计环境伟福COP2000实验箱,用汇编语言编程实现BCD码的加法COP2000计算机组成原理实验系统

3、由实验平台、开关电源、软件三大部分组成。实验平台上有寄存器组R0-R3、运算单元、累加器A、暂存器W、直通/左移/右移单元、地址寄存器、程序计数器、堆栈、中断源、输入/输出单元、存储器单元、微地址寄存器、指令寄存器、微程序控制器、组合逻辑控制器、扩展座、总线插孔区、微动开关/指示灯、逻辑笔、脉冲源、20个按键、字符式LCD、RS232口。15沈阳航空航天大学课程设计报告第2章详细设计方案2.1算法与程序的设计与实现此程序的核心在于十六进制转换为十进制BCD码的部分,以最低两位的运算为例:一.低位1.若低位

4、>9,正确的BCD码应该让低位变成对应的0~9,即减A(10),再把A进给高位,由于是高位,因此高位应该是加1,即+10H-0AH=+6H2.若低位产生进位,但这个进位是“16进1”,即低位多进了6,因此应该给低位加上6,即+6H3.由于低位BCD码对应的十进制为0~9,不可能既产生进位又低位>9二.高位1.若高位>9,同理,应该让高位变成对应的0~9,即给高位减A(10),再把A进给更高位,由于是更高位,因此更高位应该是加1,即+100H-A0H=+60H2.若高位产生进位,但这个进位是“16进1”,即

5、高位多进了6,因此应该给高位加上6,即+60H3.由于高位BCD码对应的十进制为0~A(可能是A是由于可能低位会进位,而高位和本来是9,则会变成A),不可能既产生进位又高位>9三.由于COP2000中只能显示高位进位标志,而低位的进位显示不出来,所以需要把低位左移到高位,再进行运算,才能得出低位是否进位。15沈阳航空航天大学课程设计报告2.2流程图的设计与实现2.2.1总流程图开始输入加数和被加数,存入内存中最低两位相加,存和到内存中中间两位相加,存和到内存中最高两位相加,存和到内存中将六位和从内存取出并

6、显示结束图2.1.1总流程图15沈阳航空航天大学课程设计报告2.2.2最低两位求和流程图开始低位左移四位求和进位和的数值+06H两位求和进位和的数值+60H,和输入到内存,中间两位加数的值+1和输入到内存中结束是否和大于90H是否是否和大于90H是否图2.1.2最低两位求和流程图15沈阳航空航天大学课程设计报告开始低位左移四位求和进位和的数值+06H两位求和进位和的数值+60H,和输入到内存,最高两位加数的值+1和输入到内存中结束2.2.3中间两位求和流程图是否和大于90H是否是否和大于90H是否图2.2

7、.3中间两位求和流程图15沈阳航空航天大学课程设计报告开始低位左移四位求和进位和的数值+06H两位求和进位和的数值+60H,和输入到内存和输入到内存中结束2.2.4最高两位求和流程图是否和大于90H是否是否和大于90H是否图2.2.4最高两位求和流程图15沈阳航空航天大学课程设计报告第3章程序调试与结果测试3.1程序调试(1)由于此程序的BCD码为压缩的BCD码,每个字节存两位十进制数,而进位标志位只能判断高位是否进位,所以在判断低位是否进位时产生了难度,此时便将两位十进制数和“0F”相与,将高位置零后,

8、低位左移四位到高位,便可以判断低位是否有进位了。(2)最初在设计程序时没有考虑输入的数值放在内存单元位置的问题,导致输入内存中的数据与程序代码占用的内存单元中的数据相冲突,而不能完整的实现程序的功能。解决办法就是将输入内存的数据存到一定不被事先占用过的内存单元中,避免冲突。(3)代码中用到立即数时,忘记加“#”,或者写内存地址时忘记加“H”。诸如此类小问题,检查代码以后便可解决。3.2程序测试及结果分析测试阶段,用两组数检验程

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

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

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