cop2000实现有符号数排序_第1页
cop2000实现有符号数排序_第2页
cop2000实现有符号数排序_第3页
cop2000实现有符号数排序_第4页
cop2000实现有符号数排序_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、沈阳航空航天大学 课课 程程 设设 计计 报报 告告课程设计名称:计算机组成原理课程设计计算机组成原理课程设计课程设计题目:COP2000 实现有符号数的排序实现有符号数的排序院(系):计算机学院专 业:计算机科学与技术班 级:34010102学 号:2013040101078姓 名:葛轩指导教师:张德园完成日期:2016年01月14日沈阳航空航天大学课程设计报告 -目目 录录第第 1 章章 总体设计方案总体设计方案.21.1设计原理.21.2设计思路.21.3 设计环境.2第第 2 章章 详细设计方案详细设计方案.42.1 算法与程序的设计与实现 .42.2 流程图的设计与实现 .5第第 3

2、 章章 程序调试与结果测试程序调试与结果测试.93.1 程序调试.9 列举出调试过程中存在的问题3.2 程序测试及结果分析 .9参考文献参考文献.11附附 录(源代码)录(源代码).12沈阳航空航天大学课程设计报告 -1-第 1 章 总体设计方案1.1设计原理设计原理本次课程设计是利用COP2000指令集进行编程,实现对于内存中10个8bit有符号数(补码形式)的排序。利用冒泡排序法先将内存中的10个有符号的数视为无符号数进行排序;冒泡的原理是先将十个数逐一比较,选出最大的沉底,然后在剩下的数中依次重复上一步骤。然后利用统计十个数中正数的个数设计循环将负数从新排序。1.2设计思设计思路路本次课

3、程设计是对于有符号数排序。可以分解成两部分,一部分是将有符号的数视为无符号的数,对其进行冒泡排序;另一部分是统计十个数中正数的个数设计循环将负数从新排序。1.3 设计环境设计环境利用伟福 COP2000 型计算机组成原理实验仪软件和计算机,在 COP2000 试验仪软件上编程实现有符号数(补码形式)的排序。伟福 COP2000 试验仪软件的指令集分为如下大类:算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入输出指令。本程序用到的指令集为:(1) 算术逻辑运算指令SUB A,#II-从累加器中减去立即数后加入累加器 A 中AND A, #II -累加器 A“与”立

4、即数 IIADD A,#II-累加器 A 加立即数 IIADD A, R?-将寄存器中的数打入到累加器 A 中(2)数据传送指令MOV R?,#II-将立即数 II 送到寄存器 R?中沈阳航空航天大学课程设计报告 -2-MOV MM, A -将累加器 A 中的值送到存储器 MM 地址中MOV A,#II-将立即数 II 送到累加器 A 中MOV R?,A-将累加器 A 中的值送到寄存器 A 中MOV A,R?-将寄存器 R?的值送到累加器 A 中MOV A, MM -将存储器 MM 地址中的值送到累加器 A 中MOV R?,A-将累计器 A 的值送到间址存储器中(3)跳转指令JZ MM-若零标

5、志位置 1,跳转到 MM 地址JC MM-若进位标志置 1,跳转到 MM 地址JMP MM-跳转到 MMCOP2000 计算机组成原理实验软件截图如图 1.1 所示:图 1.1COP2000 计算机组成原理软件沈阳航空航天大学课程设计报告 -3-第 2 章 详细设计方案2.1 算法与程序的设计与实现算法与程序的设计与实现本次课程设计采用伟福 COP2000 实验仪软件和计算机实现有符号数排序的功能,利用伟福 COP2000 的指令集编程实现。算法具体描述:(1)将十个有符号数存储到内存中:将 10 个有符号数存入到内存中,数据存入到内存地址0B0H,0B1H,0B2H,0B3H,0B4H,0B

6、5H,0B6H,0B7H,0B8H,0B9H中。(2)将十个有符号数视为无符号数利用冒泡排序法排序:首先将 10 个有符号数视作无符号数进行冒泡排序。冒泡排序算法的运作如下:1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3. 针对所有的元素重复以上的步骤,除了最后一个。4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。(3) 判断正数数量 n:首先设计程序判断有多少个正数,设此时有正数 n 个。将排序后的数先和 80H 相与,再减去 80H,若此时为

7、0,则判断这个数为负数,若不为 0,则判断这个数为正数。(4) 正负数排序:从 0BnH 取数放到 0C0H 中,0BnH 后继连续地址中存的数均为负数。再在其中设置一个循环程序,循环次数为 10-n,以此将 10-n 个负数依次放到以沈阳航空航天大学课程设计报告 -4-0C0H 开头的地址中。从 0B0H 开头的地址取出正数放到负数的后面。运算结束。2.2 流程图的设计与实现流程图的设计与实现1.将十个有符号数存储到内存中如图 2.2.1 所示:将 10 个有符号数存入到内 0B0h0B9h 中开 始结 束图 2.2.1 存数流程图2.设置冒泡排序循环次数如图 2.2.2 所示:冒泡循环的次

8、数 9 存入到 0D1h 中开 始结 束图 2.2.2 设置循环次数流程图沈阳航空航天大学课程设计报告 -5-3.将十个有符号数视为无符号数利用冒泡排序如图 2.2.3 所示:把数据从 0B0h,0B1h 中取出并存到寄存器 R0和 R1 中将 0D0H 中的数据取出并放到寄存器R3比较 R0,R1 大小R0R1? Y开始R0 与 R1 内的数据交换NR30?NNR0 与 R1 所指的地址加 1R3 减 1Y结束图 2.2.3 冒泡排序流程图沈阳航空航天大学课程设计报告 -6-4.统计十个数中正数数量 n 如图 2.2.4 所示:给 R0,R1,R2,R3,分别赋初值0B0H,10,00,0B

9、0HR0 与 80H 相与结果减去 80HR0=0? N开始R2 加 1,R3 加 1YR10?NNR0 加 1R1 减 1Y结束沈阳航空航天大学课程设计报告 -7-图 2.2.4 判断正数数量流程图5.将是个数中正负数从新排序如图 2.2.5 所示:沈阳航空航天大学课程设计报告 -8-给 R0,R1 分别赋初值 10,0C0H将 R3 所指地址的数取出并放到 R1 所指的地址中Y开始R0 减 1YR1 加 1 R3 加 1R0=0? 给 R0,R1 分别赋初值0B0H,0C0H10 减 R2,加上 R1,其值赋给 R1将 R0 所指地址的数取出并放到R1 所指的地址中R2 减 1R2=0?

10、结束R1 加 1 R3 加 1图 2.2.5 正负数排序流程图沈阳航空航天大学课程设计报告 -9-第 3 章 程序调试与结果测试3.1 程序调试程序调试问题 1 : 在将排好顺序的数据存储到 00 地址的内存中解决方法:由于程序一部分会占用 00H 地址的内存,所以将排好的数据存储到0C0H 地址的内存中;问题 2 : 在 10 个数排序过程后,会出现 14 个数;解决方法:由于程序排序过程中设定的循环次数大于十个数中的正数的个数,所以将排序过程中后面的循环次数设定为与正数的个数相等;问题 3: 此汇编程序具有局限性,只能适应四个负数;解决方法: 统计十个数中正数的个数将其保存到内存中,然后设

11、计循环从新排序。 3.2 程序测试及结果分析程序测试及结果分析软件测试用源程序,COP2000 软件,其输入采用立即数方法;测试数据:(1)需排序的有符号数:5,85,84,4,62,89,96,54,46,23 排序后的有符号数:84,85,89,96,4,5,23,46,54,62图 3.2.1 结果图 1沈阳航空航天大学课程设计报告 -10-(2)需排序的有符号数:98,1,41,32,88,72,66,87,80,5 排序后的有符号数:80,87,88,98,1,5,32,41,66,72图 3.2.2 结果图 2(3)需排序的有符号数:81,82,83,84,85,86,87,88,

12、89,90 排序后的有符号数:81,82,83,84,85,86,87,88,89,90 图 3.2.3 结果图 3沈阳航空航天大学课程设计报告 -11-参考文献1 唐朔飞.计算机组成原理(第二版)M.北京:高等教育出版社,20082 王爱英.计算机组成与结构(第四版)M.北京:清华大学出版社,20063 白中英.计算机组成原理(第四版)M.北京:科学出版社,2008沈阳航空航天大学课程设计报告 -12-附录(源代码)附录(源代码)mov a,#20hmov 0b0h,amov a,#87hmov 0b1h,amov a, #25hmov 0b2h,amov a,#21hmov 0b3h,am

13、ov a,#95hmov 0b4h,amov a,#41hmov 0b5h,amov a,#46hmov 0b6h,amov a,#51hmov 0b7h,amov a,#63hmov 0b8h,amov a,#93h沈阳航空航天大学课程设计报告 -13-mov 0b9h,amov a,#9hmov 0d0h,amov a,#0bahmov r1,alun:mov a,#0b0hmov r2,amov a,#0b1hmov r3,aqushu:mov a,r2mov r0,amov a,r3subc a,r0jc jhdizhi:mov a,r2add a,#1mov r2,a沈阳航空航天大学

14、课程设计报告 -14-mov a,r3add a,#1mov r3,asubc a,r1jz overjmp qushujh:mov a,r2mov r0,amov a,r3mov r2,amov a,r0mov r3,ajmp dizhipanduancishu:mov a,r1sub a,#1mov r1,amov a,#0d0hmov r0,amov a,r0沈阳航空航天大学课程设计报告 -15-sub a,#1mov r0,asubc a,#0jz xianshijmp lunover:jmp panduancishuxianshi:mov a,#0b0hshow:mov r0,amo

15、v a,r0outmov a,r0add a,#1mov r0,asub a,#0bahjz kjmp show沈阳航空航天大学课程设计报告 -16-k:mov a,#0b0hmov r0,amov a,#0b9hmov r1,amov a,#0e0hmov r2,amov a,#0f0hmov r3,amov a,#00hmov 0eeh,amov 0efh,aloop1: mov a,r0 and a,#80h jz loop2 jmp loop3loop2: mov a,0eeh add a,#01h mov 0eeh,a沈阳航空航天大学课程设计报告 -17- mov a,r0 mov

16、r2,a mov a,r2 add a,#01h mov r2,a mov a,r0 sub a,r1 jz loop4 mov a,r0 add a,#01h mov r0,a jmp loop1 loop3: mov a,0efh add a,#01h mov 0efh,a mov a,r0 mov r3,a mov a,r3 add a,#01h mov r3,a mov a,r0沈阳航空航天大学课程设计报告 -18- sub a,r1 jz loop4 mov a,r0 add a,#01h mov r0,a jmp loop1 loop4: mov a,#00h mov r0,a mov r1,a mov r2,a mov r3,a loop5:jmp loop5沈阳航空航天大学课程设计报告-19-课程设计总结:课程设计总结: 主要从以下几方面总结:1通过这次课程设计,我学会了 COP2000 的使用方法和汇编语言的操作,了解了如何通过代码实现实验目的。2本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论