组成原理课设关于累加器

上传人:我** 文档编号:115981050 上传时间:2019-11-15 格式:DOC 页数:15 大小:147.50KB
返回 下载 相关 举报
组成原理课设关于累加器_第1页
第1页 / 共15页
组成原理课设关于累加器_第2页
第2页 / 共15页
组成原理课设关于累加器_第3页
第3页 / 共15页
组成原理课设关于累加器_第4页
第4页 / 共15页
组成原理课设关于累加器_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《组成原理课设关于累加器》由会员分享,可在线阅读,更多相关《组成原理课设关于累加器(15页珍藏版)》请在金锄头文库上搜索。

1、沈阳航空航天大学 课课 程程 设设 计计 报报 告告 课程设计名称:计算机组成原理课程设计计算机组成原理课程设计 课程设计题目:COP2000COP2000 实现数据累加实现数据累加 院(系):计算机学院 专 业:计算机科学与技术 班 级: 学 号: 姓 名: 指导教师: 完成日期: 沈阳航空航天大学课程设计报告 -I- 目目 录录 第第 1 章章 总体设计方案总体设计方案.1 1.1设计原理.1 1.2设计思路.1 1.3设计环境.2 第第 2 章章 详细设计方案详细设计方案.4 2.1 算法与程序的设计与实现 .4 2.1.1 算法具体描述.4 2.2 流程图的设计与实现 .5 2.2.1

2、 流程图具体分析.5 第第 3 章章 程序调试与结果测试程序调试与结果测试.8 3.1 程序调试 .8 3.2 程序测试及结果分析 .8 参考文献参考文献.10 附附 录(源代码)录(源代码).11 沈阳航空航天大学课程设计报告 第 1 章 总体设计方案 -1- 第 1 章 总体设计方案 1.1设计原理设计原理 实现无符号数的累加功能,计算 1+2+99+100。应用累加器和 4 个寄存器可以实现这个程序。根据该程序可以拓展到对连续内存地址的数据进 行累加。连续内存地址的累加与累加相比,需要对于内存地址进行累加并且从内 存地址中读数,然后将读出的数据进行累加求和。在累加求和部分,两个程序的 原

3、理是相同的。 1.2设计思设计思路路 每个运算步骤需要用到累加器 A,需要一个寄存器存储 100 以控制循环,一 个寄存器存储从 1 开始每次加 1 递增的累加数。由于 5050 的十六进制是 13BA, 一个寄存器最大只能存放 FF,所以需要用到两个计算器存放累加的结果。 我用 R0 存储控制循环的数;用 R1 存放累加数,用 R2 和 R3 存放累加和,其 中 R2 存放高位,R3 存放低位。 对于连续内存地址数据进行累加时,数据输入,在 COP2000 软件中,为了 直观简便观看调试程序,可用立即数送入;而在硬件测试中,应采用中断方式输 入,其优点是可连续输入不同数据,灵活,用户输入数据

4、,如: LOOP1: JMP LOOP1 ORG 20H IN 两种方式产生结果相同。在中断程序中可以加入循环控制数据和内存地址自动累 加语句,可以控制输入的数据个数。 连续内存地址累加和数据累加相比,只有数据输入部分不同,最基本的原理 是相同的,所以还是用 R0 存储控制循环的数;用 R1 存放累加数,用 R2 和 R3 存 放累加和,其中 R2 存放高位,R3 存放低位。 沈阳航空航天大学课程设计报告 第 1 章 总体设计方案 -2- 1.3设计环境设计环境 利用伟福 COP2000 型计算机组成原理实验仪软件和计算机,在 COP2000 试 验仪软件上编程实现数据的累加。伟福 COP20

5、00 试验仪软件的指令集分为如下 大类:算术运算指令、数据传送指令、跳转指令、中断返回指令、输入输出指令。 伟福 COP2000 计算机组成原理实验仪软件截图如 1.3 所示: 本程序所用到的相应的指令集 (1) 算术逻辑运算指令 SUB A,#II-从累加器中减去立即数后加入累加器 A 中 AND A, #II-累加器 A“与”立即数 II ADDC A,R?-将寄存器 R?的值加入累加器 A 中,考虑进位 (2) 数据传送指令 MOV R?,#II-将立即数 II 送到寄存器 R?中 MOV MM, A -将累加器 A 中的值送到存储器 MM 地址中 MOV A,#II-将立即数 II 送

6、到累加器 A 中 MOV R?,A-将累加器 A 中的值送到寄存器 A 中 MOV A,R?-将寄存器 R?的值送到累加器 A 中 MOV A, MM -将存储器 MM 地址中的值送到累加器 A 中 MOV R?,A-将累计器 A 的值送到间址存储器中 (3)跳转指令 JZ MM-若零标志位置 1,跳转到 MM 地址 JC MM-若进位标志置 1,跳转到 MM 地址 JMP MM-跳转到 MM 如下为 COP2000 计算机组成原理实验软件截图: 沈阳航空航天大学课程设计报告 第 1 章 总体设计方案 -3- 图 1.3 伟福 COP2000 计算机组成原理试验仪软件截图 沈阳航空航天大学课程

7、设计报告 第 2 章 详细设计方案 -4- 第 2 章 详细设计方案 2.1 算法与程序的设计与实现算法与程序的设计与实现 本课设采用伟福 COP2000 实验仪软件和计算机实现数据累加的功能,利用 伟福 COP2000 的指令集编程实现。 2.1.1 算法具体描述算法具体描述 从 1 累加到 100 是一个重复一百次的循环,控制循环的条件则必然是一个等 于一百的数,每执行一次循环就减一,当此数减到零跳出循环。 本程序的核心思想就是:累加和=累加和+累加数,然后累加数加 1。在开始 没有进入循环时需要先将 1 存入寄存器 R1,并且将 1 存入 R3,循环的控制数初 始值应该是 99。但是还有

8、一点必须要考虑其中,就是进位。一个八位寄存器只能 存储两个十六位的数,最大数是 0xFF,而 1+2+99+100 的和是 5050, 在一个八位的寄存器中存不下,所以需要用到进位的概念。在微指令中有专门用 来控制进位的语句:JC MM。所以要用判断进位的加法进行计算,若有进位在前 一位加一后,循环次数减一并且累加数加一;若无进位,循环次数减一并且累加 数加一。然后对于循环次数进行判断,判断是否完成 1 到 100 的累加,未完成继 续执行,完成后,累加的结果存在 R3 和 R2 中,R3 存低 8 位,R2 存高八位。在 COP2000 中只有将数据存到累加器 A 中才能进行加减运送,所以每

9、次进行数据计 算都会将数据存储的 A 中,然后进行计算。 对于连续内存地址的数据进行累加计算时,先要将需要累加的数据存储到内 存地址中,在用电脑进行测试时,可以存入立即数作为数据进行累加。当与 COP2000 连接以后,需要用中断程序,实现对于数据的输入,每次调用中断程序 输入一个数据,用 IN 输入到 A 中,然后存储到内存地址中。可以将控制循环次 数的数据存储到 R0 中,用来确定输入数据的个数,将内存地址的首地址存到 R1 中,每次存完数据,循环次数减一,地址加一直到数据输入完成。数据输入完成 后,对于数据的累加与从 1 累加到 100 原理相同,只不过累加数变成对于地址的 沈阳航空航天

10、大学课程设计报告 第 2 章 详细设计方案 -5- 累加,只不过需要根据内存地址将数据调到 A 中,然后进行加法运算,从而实现 数据的累加,结果存到 R2,R3 中,还可以利用 OUT,将结果输出。 2.2 流程图的设计与实现流程图的设计与实现 2.2.1 流程图具体分析流程图具体分析 1. 从 1 累加到 100 的流程图如下图所示: N Y N 图 2.2.1 从 1 累加到 100 的流程图 开始 R0=99 R1=1 R3=1 R1+ R3+=R1 是否产生进位 R2+ R0- R0=0? 输出在 R2,R3 结束 沈阳航空航天大学课程设计报告 第 2 章 详细设计方案 -6- 2.

11、对于连续内存地址数据的累加流程图如下: 2.1 对于连续内存地址数据的存储 N Y N Y 图 2.2.2 关于数据输入的流程图 2.2 对于连续内存地址数据累加流程图如下: 开始 初始化 R0,R1 是否输入中断 将输入的数据存储到首 地址中 R0- R1+ R0=0? 输入结束进行累加 结束 沈阳航空航天大学课程设计报告 第 2 章 详细设计方案 -7- N Y N Y 图 2.2.3 关于连续内存地址数据累加流程图 开始 初始化 R0,R1 R1+ 取出R1 的数据 R3+=R1 是否产生进位 R2+ R0- R0=0? 输出在 R2,R3 结束 将首地址的数据存 入 R3 沈阳航空航天

12、大学课程设计报告 第三章 程序调试与结果测试 -8- 第 3 章 程序调试与结果测试 3.1 程序调试程序调试 (1 1)语法错误)语法错误 (1)在进行输入的时候需要将输入放到 A 中,然后在放入内存中,不能直 接放到内存中。 (2)指令集不支持将某一存储单元内的数据直接写入寄存器内,必须通过 累加器 A 进行中转。因此使用 MOV R0, 00H 出现错误。正确的应为 MOV A,00H;MOV R0, A。 (3)指令混淆,立即数和存储单元的地址只差一个“#” 。编程开始阶段, 不熟悉指令集,执行把立即数放入累加器的操作,误将 MOV A, 01H 用作 MOV A, #01H。 (2

13、2)逻辑错误)逻辑错误 (1)编程开始阶段,由于考虑不周全,保存结果时只用了一个寄存器,结 果导致无法存储正确的结果,后来经过检查发现 5050 转化为十六进制为 13BA, 需要用两个寄存器存储结果。 (2)地址超出范围,采用中断方式执行主程序时,设程序首指令地址为 F0H,导致最后的指令超出了地址范围。 (3)在连接 COP2000 仪器时,采用中断方式输入数据时,开始的时候,无 法跳出中断,仔细检查程序没有错误,检查仪器时发现 IA 没有调整,后来调整 IA,才可以顺利的完成数据的输入。 3.2 程序测试及结果分析程序测试及结果分析 1. 从 1 累加到 100 程序测试 当控制循环数为

14、 100 时,输出结果为:141F,转化为十进制就是 5151 当控制循环数为 99 时,输出结果为:13BA,转化为十进制就是 5050 当控制循环数为 98 时,输出结果为.:1356,转化为十进制就是 4950 沈阳航空航天大学课程设计报告 第三章 程序调试与结果测试 -9- 当控制循环数为 97 时,输出结果为.:12F3,转化为十进制就是 4851 2. 从连续内存地址数据累加程序测试 当连续内存地址首地址为:0A0H,在以 0A0H 为首地址开始的五个地址 中存入数据:7,9,11,12,15。实际结果为:54。将数据输入到程序后,运行 程序得到:36H,转化为十进制等于 54。两

15、个结果相同。 当连续内存地址首地址为:0A0H,在以 0A0H 为首地址开始的五个地址 中存入数据:14,14,14,14,14。实际结果为:70。将数据输入到程序后,运 行程序得到:46H,转化为十进制等于 70。两个结果相同。 当连续内存地址首地址为:0A0H,在以 0A0H 为首地址开始的十个地址 中存入数据:18,18,18,18,18,18,18,18,18,18。实际结果为:180。将数据 输入到程序后,运行程序得到:B4H,转化为十进制等于 180。两个结果相同。 沈阳航空航天大学课程设计报告 参考文献 -10- 参考文献 1 白中英.计算机组成原理(第 4 版)M.北京:科学出版社.2008 2 王爱英.计算机组成与结构(第 4 版)M.北京:清华大学科学出版社.2006 3 唐硕飞.计算机组成原理(第 2 版).M.北京:高等教育出版社.2008 4 伟福 COP2000 型计算机组成原理试验仪指导书M.南京伟福实业有限公司 沈阳航空航天大学

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号