[工学]微机原理 课程设计 软件范例.doc
《[工学]微机原理 课程设计 软件范例.doc》由会员分享,可在线阅读,更多相关《[工学]微机原理 课程设计 软件范例.doc(11页珍藏版)》请在三一办公上搜索。
1、课程设计报告( 2011- 2012 年度第 一 学期)课 程: 微机原理及应用 题 目:冒泡法排序与筛选法求素数院 系: 自动化系 班 级: 自动化0904 学 号: 200902020423 学生姓名: 阎立恒 指导教师: 马永光 设计周数: 一周 成 绩: 日期:2012年 1 月 12 日微机原理及应用课程设计任 务 书一、 目的与要求1 通过对微机系统分析和具体设计,使学生加深对所学课程的理解。2 掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法。3 培养学生分析问题、解决问题的能力。4 培养学生对微型计算机应用系统的基本设计能力。5 提高学生的实践动手能力和创新能力。二、
2、 主要内容1 根据个人情况选择课程设计参考题目,或者依照个人兴趣自拟题目。2 针对所选择的设计题目进行硬件设计,合理选用所需元器件,绘制系统结构框图、硬件接线图,并在实验系统上完成电路的连接和调试。3 根据所选题目的要求对微机系统进行程序设计,绘制程序总体流程图并编写源程序上机调试。4 写出课程设计报告,对整个设计过程进行归纳和综合,对设计中所存在的问题和不足进行分析和总结,提出解决的方法、措施、建议和对这次设计实践的认识和收获。 三、 进度计划序号设计内容完成时间备注1选择课程设计题目,查阅相关资料2进行软硬件设计3上机调试4撰写设计报告5演示及答辩四、 设计成果要求1 系统硬件设计合理,软
3、件编程达到设计要求。2 系统硬件结构图和软件流程图绘制清楚规范。3 设计报告完整规范。五、 考核方式根据设计任务的完成情况、课程设计报告撰写情况及演示答辩情况采用五级记分制评定成绩。 学生姓名:指导教师: 一、课程设计目的与要求1 通过对微机系统分析和具体设计,使学生加深对所学课程的理解。2 掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法。3 培养学生分析问题、解决问题的能力。4 培养学生对微型计算机应用系统的基本设计能力。5 提高学生的实践动手能力和创新能力二、课程设计正文1 设计题目1) 排序程序设计。要求:从键盘输入10位学生的考试成绩,由高到低排序后显示排序结果。2) 筛选
4、法求素数。要求:编写程序,求出2254之间的所有素数,并显示在屏幕上(数与数之间用逗号分开)。(提示:从n2开始,将所有n的倍数做上记号;再对n后面的数进行同样的操作;重复这个过程直到找出所有的素数。最后结束时,凡是未标记号的数就是素数。)2 设计思想(总体设计方案、系统的主要功能、作用)1) 成绩排序程序输入数字:建立存储区域IBF,调用DOS系统功能0AH从键盘输入字符串。则IBF1里存储的为实际输入的字符数。如果IBF1为3,因为输入的是学生的成绩,所以默认输入的数为100。如果IBF1为2,则先将IBF2,IBF3的ASCII码减去30转为数字,再把IBF2乘以10加上IBF3,即可还
5、原成数字。如果IBF1为1,则直接将IBF2减去30即可还原成数字。冒泡排序:依次比较相邻的两个数,将大数放在前面,小数放在后面。即在第一趟:首先比较第1个和第2个数,将大数放前,小数放后。然后比较第2个数和第3个数,将大数放前,小数放后,如此继续,直至比较最后两个数,将大数放前,小数放后。至此第一趟结束,将最小的数放到了最后。在第二趟:仍从第一对数开始比较,将大数放前,小数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最小的),第二趟结束,在倒数第二的位置上得到第二小的数。如此下去,重复以上过程,直至最终完成排序。输出数字:先判断数字是否为0,若为0则直接输出0,不为零则除以10,将其
6、余数压入堆栈,将其商代替原被除数,递归调用,直至除以10的余数和商都为零。递归出口为将堆栈中的数字弹出,转换成ASCII码,调用DOS系统功能02H输出字符。即完成一个数字的输出。之后输出一个空格再进行下一个数字的输出。2) 筛选法求素数 建立两个存储区域分别存放除数n和被除数m,范围均为0254。 取除数n,初始值为2,n的范围是2253。 取被除数m,初始值为2+1=3,m的范围是(n+1)254。 计算m/n,若除不尽则不进行操作,若可以除尽则将存放m的存储空间的第一位置1。 将m增大1重复,直至m为254 将n增大1重复,直至n为253 此时被除数若为质数则其存储空间首位为0,若为和数
7、则其存储空间首位为1。据此判断并输出。输出原理同冒泡法排序的输出原理3 系统工作原理介绍此课程设计不涉及硬件,故无接口设计和系统框图.4 系统程序设计(程序流程图、源程序及注释)1) 排序程序开始输入10个数字两数比较前者大?Y后移一位N交换是否最后数?NY次数足够?NY输出结束DATA SEGMENT IBF DB 3 DB ? DB 4 DUP(?) BUF DW 10 DUP(?) MSG1 DB INPUT 10 NUMBERS,0AH,0DH,$ MSG2 DB RESULT:,0AH,0DH,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA
8、START: MOV AX,DATA MOV DS,AX ;定义数据段基址 MOV DX,OFFSET MSG1 ;取MSG1偏移地址 MOV AH,09H INT 21H ;输出MSG1 MOV CX,10 ;规定输入次数为10 MOV BX,0 MOV DX,OFFSET IBF ;取IBF偏移地址 存储输入的字符串INPUT: MOV AH,0AH INT 21H ;调用键盘输入字符串 PUSH DX PUSH BX ;保护DX和BX CALL CTN ;调用CTN将字符串变为数字 POP BX ;弹出BX MOV BUFBX,DX ;将转换完的数字放入BUF中 POP DX ;弹出DX
9、 ADD BX,2 ;指向下一个存储空间 LOOP INPUT ;输入10个数 MOV CX,10 DEC CX ;规定排序次数LOOP1: MOV DI,CX ;保护排序次数 将CX空出留给内圈循环使用 MOV BX,0 ;从第一个数开始比较LOOP2: MOV AX,BUFBX CMP AX,BUFBX+2 ;取两个数比较 JGE NEXT ;前者大则不交换 XCHG AX,BUFBX+2 MOV BUFBX,AX ;前者小则两数交换NEXT: ADD BX,2 ;将比较的位置后移 LOOP LOOP2 ;循环 再次比较 共循环DI次比较 即完成1次排序 MOV CX,DI ;将外圈循环的
10、次数放回CX LOOP LOOP1 ;循环 再次排序 共进行10次排序 MOV DX,OFFSET MSG2 ;取MSG2偏移地址 MOV AH,09H INT 21H ;以下为输出程序 先输出MSG2 MOV CX,10 ;输出数字10次 MOV BX,0OUTPUT: PUSH BX ;输出BUF的内容 先保护BX PUSH CX ;保护CX MOV AX,BUFBX ;取BX所指的数放入AX OR AX,AX JNZ NOTZ ;判断数字是否为0 为0则直接输出 不为0则调用输出程序 MOV DL,30H MOV AH,02H INT 21H JMP OTPSPCNOTZ: CALL D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工学 工学微机原理 课程设计 软件范例 微机 原理 软件 范例

链接地址:https://www.31ppt.com/p-4532879.html