COP实现BCD码的加法.docx

上传人:b****8 文档编号:29766505 上传时间:2023-07-26 格式:DOCX 页数:16 大小:100.07KB
下载 相关 举报
COP实现BCD码的加法.docx_第1页
第1页 / 共16页
COP实现BCD码的加法.docx_第2页
第2页 / 共16页
COP实现BCD码的加法.docx_第3页
第3页 / 共16页
COP实现BCD码的加法.docx_第4页
第4页 / 共16页
COP实现BCD码的加法.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

COP实现BCD码的加法.docx

《COP实现BCD码的加法.docx》由会员分享,可在线阅读,更多相关《COP实现BCD码的加法.docx(16页珍藏版)》请在冰豆网上搜索。

COP实现BCD码的加法.docx

COP实现BCD码的加法

沈阳航空航天大学

 

课程设计报告

 

课程设计名称:

计算机组成原理课程设计

课程设计题目:

COP2000实现BCD码的加法

 

院(系):

计算机学院

专业:

计算机科学与技术

班级:

学号:

姓名:

指导教师:

完成日期:

2013年1月11日

 

 

第1章总体设计方案

1.1设计原理

欲实现两个压缩BCD码的加法,且被加数,加数,和都为六位十进制数,需将两个六位十进制数输入到内存中,再分别实现加数和被加数的最低两位,中间两位,最高两位的带进位加法,并且依次将其进行十六进制到十进制的转换,输入到内存中暂存,最后将六位十进制的和输出到寄存器中显示出来。

1.2设计环境

伟福COP2000实验箱,用汇编语言编程实现BCD码的加法

COP2000计算机组成原理实验系统由实验平台、开关电源、软件三大部分组成。

实验平台上有寄存器组R0-R3、运算单元、累加器A、暂存器W、直通/左移/右移单元、地址寄存器、程序计数器、堆栈、中断源、输入/输出单元、存储器单元、微地址寄存器、指令寄存器、微程序控制器、组合逻辑控制器、扩展座、总线插孔区、微动开关/指示灯、逻辑笔、脉冲源、20个按键、字符式LCD、RS232口。

 

第2章详细设计方案

2.1算法与程序的设计与实现

此程序的核心在于十六进制转换为十进制BCD码的部分,以最低两位的运算为例:

一.低位

1.若低位>9,正确的BCD码应该让低位变成对应的0~9,即减A(10),再把A进给高位,由于是高位,因此高位应该是加1,即+10H-0AH=+6H

2.若低位产生进位,但这个进位是“16进1”,即低位多进了6,因此应该给低位加上6,即+6H

3.由于低位BCD码对应的十进制为0~9,不可能既产生进位又低位>9

二.高位

1.若高位>9,同理,应该让高位变成对应的0~9,即给高位减A(10),再把A进给更高位,由于是更高位,因此更高位应该是加1,即+100H-A0H=+60H

2.若高位产生进位,但这个进位是“16进1”,即高位多进了6,因此应该给高位加上6,即+60H

3.由于高位BCD码对应的十进制为0~A(可能是A是由于可能低位会进位,而高位和本来是9,则会变成A),不可能既产生进位又高位>9

三.由于COP2000中只能显示高位进位标志,而低位的进位显示不出来,所以需要把低位左移到高位,再进行运算,才能得出低位是否进位。

 

2.2流程图的设计与实现

2.2.1总流程图

图2.1.1总流程图

2.2.2最低两位求和流程图

和大于90H是

和大于90H是

图2.1.2最低两位求和流程图

2.2.3中间两位求和流程图

和大于90H是

和大于90H是

图2.2.3中间两位求和流程图

2.2.4最高两位求和流程图

和大于90H是

和大于90H是

图2.2.4最高两位求和流程图

第3章程序调试与结果测试

3.1程序调试

(1)由于此程序的BCD码为压缩的BCD码,每个字节存两位十进制数,而进位标志位只能判断高位是否进位,所以在判断低位是否进位时产生了难度,此时便将两位十进制数和“0F”相与,将高位置零后,低位左移四位到高位,便可以判断低位是否有进位了。

(2)最初在设计程序时没有考虑输入的数值放在内存单元位置的问题,导致输入内存中的数据与程序代码占用的内存单元中的数据相冲突,而不能完整的实现程序的功能。

解决办法就是将输入内存的数据存到一定不被事先占用过的内存单元中,避免冲突。

(3)代码中用到立即数时,忘记加“#”,或者写内存地址时忘记加“H”。

诸如此类小问题,检查代码以后便可解决。

 

3.2程序测试及结果分析

测试阶段,用两组数检验程序的功能,用X表示被加数,用Y表示加数。

(1)X=013579Y=024689

输出结果为038268

(2)X=987654Y=123456

输出结果为111110

(1)中,013579+024689=038268,结果正确。

(2)中,987654+123456=1111110,由于输出结果不考虑溢出,只能显示六位数,所以结果正确。

参考文献

[1]唐朔飞.计算机组成原理(第2版)[M]北京:

高等教育出版社,2008

[2]王爱英.计算机组成与结构(第4版)[M].北京:

清华大学出版社,2006

[3]白中英.计算机组成原理(第4版)[M]北京:

科学出版社,2008

附录(源代码)

00C0IN

0188E6MOV0E6H,A

03C0IN

0488E1MOV0E1H,A

06C0IN

0788E2MOV0E2H,A

09C0IN

0A88E3MOV0E3H,A

0CC0IN

0D88E4MOV0E4H,A

0FC0IN

1088E5MOV0E5H,A

1278E2MOVA,0E2H;取低八位

1480MOVR0,A

1578E5MOVA,0E5H

1781MOVR1,A

1870MOVA,R0;对低四位进行判断

195C0FANDA,#0FH

1BD4RLA

1CD4RLA

1DD4RLA

1ED4RLA

1F82MOVR2,A

2071MOVA,R1

215C0FANDA,#0FH

23D4RLA

24D4RLA

25D4RLA

26D4RLA

2783MOVR3,A

2872MOVA,R2

2913ADDA,R3

2AA035JCT1;相加有进位跳转

2C82MOVR2,A

2D7C90MOVA,#90H

2F32SUBA,R2;相加大于9跳转

30A035JCT1

3270MOVA,R0

33AC38JMPT4

T1:

;低四位之和有进位或大于9,和加6

3570MOVA,R0

361C06ADDA,#06H

T4:

3811ADDA,R1

39A04DJCT2;低八位的高四位之和有进位跳转

3B83MOVR3,A

3C7C90MOVA,#90H

3E33SUBA,R3;低八位的高四位之和大于9跳转

3FA04CJCT3

4173MOVA,R3

4288F0MOV0F0H,A;低八位之和存入内存

4478E1MOVA,0E1H;取中间八位

4680MOVR0,A

4778E4MOVA,0E4H

4981MOVR1,A

4AAC5CJMPLOOP1

T3:

4C73MOVA,R3

T2:

4D1C60ADDA,#60H

4F88F0MOV0F0H,A;低八位之和存入内存

5178E1MOVA,0E1H;取中间八位

5380MOVR0,A

5478E4MOVA,0E4H

5681MOVR1,A

5771MOVA,R1

5871MOVA,R1

591C01ADDA,#01H;低八位有进位向中间八位进1

5B81MOVR1,A;中间八位运算

LOOP1:

5C70MOVA,R0

5D5C0FANDA,#0FH

5FD4RLA

60D4RLA

61D4RLA

62D4RLA

6382MOVR2,A

6471MOVA,R1

655C0FANDA,#0FH

67D4RLA

68D4RLA

69D4RLA

6AD4RLA

6B83MOVR3,A

6C72MOVA,R2

6D13ADDA,R3

6EA079JCTT1

7082MOVR2,A

717C90MOVA,#90H

7332SUBA,R2

74A079JCTT1

7670MOVA,R0

77AC7CJMPTT4

TT1:

7970MOVA,R0

7A1C06ADDA,#06H

TT4:

7C11ADDA,R1

7DA091JCTT2

7F83MOVR3,A

807C90MOVA,#90H

8233SUBA,R3

83A090JCTT3

8573MOVA,R3

8688F1MOV0F1H,A;中间八位存入内存

8878E6MOVA,0E6H;取高八位

8A80MOVR0,A

8B78E3MOVA,0E3H

8D81MOVR1,A

8EAC9FJMPLOOP2

TT3:

9073MOVA,R3

TT2:

911C60ADDA,#60H

9388F1MOV0F1H,A;中间八位存入内存

9578E6MOVA,0E6H;取高八位

9780MOVR0,A

9878E3MOVA,0E3H

9A81MOVR1,A

9B71MOVA,R1

9C1C01ADDA,#01H

9E81MOVR1,A

LOOP2:

9F70MOVA,R0

A05C0FANDA,#0FH

A2D4RLA

A3D4RLA

A4D4RLA

A5D4RLA

A682MOVR2,A

A771MOVA,R1

A85C0FANDA,#0FH

AAD4RLA

ABD4RLA

ACD4RLA

ADD4RLA

AE83MOVR3,A

AF72MOVA,R2

B013ADDA,R3

B1A0BCJCTTT1

B382MOVR2,A

B47C90MOVA,#90H

B632SUBA,R2

B7A0BCJCTTT1

B970MOVA,R0

BAACBFJMPTTT4

TTT1:

BC70MOVA,R0

BD1C06ADDA,#06H

TTT4:

BF11ADDA,R1

C0A0D5JCTTT2

C283MOVR3,A

C37C90MOVA,#90H

C533SUBA,R3

C6A0D4JCTTT3

C873MOVA,R3

C988F2MOV0F2H,A

CB81MOVR1,A

CC78F1MOVA,0F1H

CE82MOVR2,A

CF78F0MOVA,0F0H

D183MOVR3,A

T:

D2ACD2JMPT;

TTT3:

D473MOVA,R3

TTT2:

D51C60ADDA,#60H

D788F2MOV0F2H,A

D981MOVR1,A

DA78F1MOVA,0F1H

DC82MOVR2,A

DD78F0MOVA,0F0H

DF83MOVR3,A

 

课程设计总结:

本次课程设计让我收获颇丰,起初拿到课程设计题目,不知道如何去实现设计要求,经过前几天查阅资料,老师帮助,我对这次课程设计要求有了更深的了解,知道了具体应该怎样操作,怎样去实现BCD码加法,怎样去操作COP2000实验箱。

我想说本次课程设计不但使我们复习了计算机组成原理课程的内容,还让我们复习并应用了算法设计与分析以及汇编语言课程的内容,我们加深了对计算机系统概念的理解。

最后,感谢老师对我们的悉心教导,以后我会把课堂学到的知识加以灵活运用,不辜负老师对我们的厚望。

指导教师评语:

 

指导教师(签字):

      年月日

课程设计成绩

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1