COP2000实现补码数的排序

上传人:人*** 文档编号:554803837 上传时间:2022-11-26 格式:DOC 页数:11 大小:113.50KB
返回 下载 相关 举报
COP2000实现补码数的排序_第1页
第1页 / 共11页
COP2000实现补码数的排序_第2页
第2页 / 共11页
COP2000实现补码数的排序_第3页
第3页 / 共11页
COP2000实现补码数的排序_第4页
第4页 / 共11页
COP2000实现补码数的排序_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《COP2000实现补码数的排序》由会员分享,可在线阅读,更多相关《COP2000实现补码数的排序(11页珍藏版)》请在金锄头文库上搜索。

1、word某某航空航天大学 课 程 设 计 报 告课程设计名称:计算机组成原理课程设计课程设计题目:COP2000实现补码数的排序院系:专 业:班 级:学 号:姓 名:指导教师:完成日期:2016 年 1 月 15 日 / 目 录第1章总体设计方案1设计原理1设计思路1设计环境1第2章详细设计方案32.1 算法与程序的设计与实现32.2 流程图的设计与实现3第3章程序调试与结果测试53.1 程序调试53.2 程序测试与结果分析5参考文献6第1章 总体设计方案1.1 设计原理本次课程设计利用的是COP2000指令集编程实现的,是对于给定内存单元00H-0FH中的16个8bit补码数,完成从小到大的

2、排序功能;首先利用冒泡排序法将内存中的16个数进展排序,冒泡的原理是先将16个数逐一比拟,选出最大的沉底,然后再在剩下的数中依次重复上一步骤,最后利用统计16个数中正数的个数设计循环将负数重新排序。1.2 设计思路对于补码数,其数有正有负,对于此可以分成两局部,首先是根据数的个数确定循环次数,对于数一局部是将有符号的数视为无符号的数,对其进展冒泡排序,另一局部是统计16个数中的正数个数设计循环将负数重新排序。1.3 设计环境利用伟福COP2000型计算机组成原理试验仪软件和计算机,在COP2000试验仪软件上编程实现补码的排序伟福COP2000试验仪软件的指令集分为如下大类:算术运算指令、逻辑

3、运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入输出指令。该程序用到的指令集如下:1算术逻辑运算指令ADD A,#II累加器A加立即数IIADD A,R?将存放器中的数打入到累加器A中AND A,#II累加器A与立即数IISUB A,#II从累加器中减去立即数后参加累加器A中2数据传输指令MOV R?,#II将立即数II传送到存放器R?中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中

4、MOV R?,A 将累加器A的值送到间址存储器中3跳转指令 JZ MM假如零标志位置1,跳转到MM地址 JC MM假如进位标志置1,跳转到MM地址 JMP MM跳转到MMCOP2000计算机组成原理试验软件截图如图1所示:图1 COP2000计算机组成原理软件第2章 详细设计方案2.1 算法与程序的设计与实现 本课设采用伟福COP2000实验仪软件和计算机实现补码数排序功能,利用伟福COP2000的指令集编程实现。算法描述:首先将16个补码数存入到内存中,数据存入内存地址00H,01H,02H,03H,04H,05H,06H,07H,08H,09H,0AH,0BH,0CH,0DH,0EH,0F

5、H中。对十六个数进展冒泡排序法排序,冒泡排序法的运算如下: 首先比拟相邻的元素,如果第一个比第二个打,就交换它俩;然后对每一对相邻元素进展同样的工作,从开始第一对到结尾最后一对,所以最后一个元素是最大的数;针对所有的元素重复以上的步骤,除了最后一个;同理下一轮也是通过一样的方法重复上面操作,到最后每次对越来越少的元素进展比拟,直到没有任何一对数字需要比拟。2.2 流程图的设计与实现1.将十六个补码数存储到内存中如图2.2.1所示:开始将16个补码数存入到内存00H-0FH中完毕2设置冒泡排序循环次数如图2.2.2所示:开始冒泡的次数为15次完毕3.将十六个数进展冒泡排序如图2.2.3所示:开始

6、将数据从00H,01H中取出并存到存放器R0和R1中比拟R0和R1的大小R0R1? N YR0和R1内的数据交换R0和R1所指的地址加1R2减1R20? Y完毕 N第3章程序调试与结果测试 程序调试程序中指令出现错误,代码不能正常运行,对其进展反复检查修改以与调试,使其正常工作。3.2 程序测试与结果分析结果展示: 需排序的补码数:22,16,0A,08,12,22,3A,45,5C,6F,80,91,A2,BC,BD,03 排序后的补码数:03,08,0A,12,16,22,22,3A,45,5C,6F,80,91,A2,BC,BD参考文献1王爱英:计算机组成与结构(第四版M.:清华大学,2

7、0062白中英:计算机组成原理(第四版)M.:科学,2008附 录源代码MOV A,#22HMOV 00H,AMOV A,#16HMOV 01H,AMOV A,#0AHMOV 02H,AMOV A,#08HMOV 03H,AMOV A,#12HMOV 04H,AMOV A,#22HMOV 05H,AMOV A,#3AHMOV 06H,AMOV A,#45HMOV 07H,AMOV A,#5CHMOV 08H,AMOV A,#6FHMOV 09H,AMOV A,#80HMOV 0AH,AMOV A,#91HMOV 0BH,AMOV A,#0A2HMOV 0CH,AMOV A,#0BCHMOV 0

8、DH,AMOV A,#0BDHMOV 0EH,AMOV A,#03HMOV 0FH,A 输入数据MOV A,#0FHMOV 0F0H,A 循环次数MOV R0,#0EFH 结果存入末地址R0LOOP1:MOV R1,#00H 判断首地址MOV A,0F0HMOV 0F1H,A 内层循环次数LOOP2:MOV A,R1MOV R2,A 取出值存入R2MOV A,R1ADD A,#01 内存地址+1MOV R1,AMOV A,R2SUB A,R1 比拟大小JC S0S1: 交换MOV A,R1MOV 0F2H,A 保存后一个内存地址的值MOV A,R1SUB A,#01HMOV R2,A 保存前一

9、个内存地址MOV A,R2MOV 0F3H,A 保存前一个内存地址的值MOV A,0F2HMOV R2,A 后一个内存地址的值存入前一个MOV A,0F3HMOV R1,A 前一个存入后一个S0:MOV A,0F1HSUB A,#01H 内层循环-1MOV 0F1H,ASUB A,#00HJZ S2 内层循环完毕JMP LOOP2S2:MOV A,R1MOV R0,AOUT 排序最后一位存入MOV A,R0SUB A,#01MOV R0,A 存数最后一位地址-1MOV A,0F0HSUB A,#01H 外层循环-1MOV 0F0H,ASUB A,#00HJZ LAST 循环完毕JMP LOOP1LAST:MOV A,00HMOV 0E0H,AOVER:JMP OVER课程设计总结:通过这次课程设计,我学会了COP2000的使用与操作,以与对汇编语言有了一定的了解,学习到如何通过代码实现实验目的;这次课程设计让我深刻的知道了自己的编程能力,还是有一定的不足之处,尤其是缩减代码的过程中,自己写的代码过于繁琐而且很难读懂;虽然这次课程设计遇到了很多问题,但是在和教师同学的交流下最终得到解决,特此感谢教师的指导,这次课程设计收获颇丰,很满意能够完成这次课程设计。指导教师评语:指导教师(签字):年月日课程设计成绩

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

当前位置:首页 > 建筑/环境 > 施工组织

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