汇编课设报告

上传人:jun****875 文档编号:17757069 上传时间:2020-12-05 格式:DOC 页数:25 大小:631.41KB
收藏 版权申诉 举报 下载
汇编课设报告_第1页
第1页 / 共25页
汇编课设报告_第2页
第2页 / 共25页
汇编课设报告_第3页
第3页 / 共25页
资源描述:

《汇编课设报告》由会员分享,可在线阅读,更多相关《汇编课设报告(25页珍藏版)》请在装配图网上搜索。

1、 课 程 设 计 报 告 课程名称 汇编语言程序设计 课题名称 中断应用程序设计 专 业 计算机科学与技术 2010年 9 月 5 日 一、设计内容与设计要求 1.设计内容:通过本周的课程设计,学生能够巩固所学的基础知识,并能够使学生更加熟练运用汇编程序设计语言来掌握综合汇编程序设计的方法和过程,以及为设计其它应用软件提供帮助,进而提高学生的软件设计能力。 1、编制一计算比赛成绩的程序,要求完成以下功能: (1) 9名评委,每个评委给分范围为0~10(整数);

2、(2) 9名评委给分中,去掉一个最高分和一个最低分,剩余7名评委的平均分即为参赛者的得分(精确到小数点二位); (3) 将得分在光标位置处显示出来。 2、编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于30字的grade数组中,各数据的格式为: 学号,成绩1,成绩2,…,成绩5 然后根据grade中的学生成绩,把学生名次填入rank数据组中,并显示出来,格式为: 学号,名次 3、利用INT 1CH(大约每秒中断18.2次)编写一个中断驻留程序,要求在屏幕的右上角显示计算机中当前系统时间,显示格式为 时:分:秒:1/100秒 4、输入一个菱形的两条对角线长,在屏幕

3、上用‘*’号画出一个彩色的菱形。 5、设置图形方式并显示彩条,要求: 选择背景色为蓝色,调色板为0,然后每行显示一种颜色,每四行重复一次,一直到整个屏幕都显示出彩条 2.设计要求: 掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。 1. 设计正确,方案合理。 2. 界面友好,使用方便。 3. 程序精炼,结构清晰。 4. 设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。 5. 上机演示。 6. 按学号顺序选课题号,并在规定的时间内独自完成相关课题的汇编源程序编写、

4、调整和运行。源程序及编译生成各文件均保存在软盘中; 7. 按本任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。并用A4的复印纸打印并装订; 二、进度安排 第 1 周 上机时间 星期1 布置任务 星期2 8:00—12:00 星期3 8:00—12:00 星期4 8:00—12:00 附: 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二

5、级标题用四号宋体加粗,正文用小四号宋体;行距为22。 正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。 正文总字数要求在5000字以上(不含程序原代码)。 目 录 一、课程的主要功能1 二、功能模块的划分2 三、主要功能的实现 四、程序调试 五、总结 六、附件 1、课程的主

6、要功能 1、课题的主要功能: 班级学生成绩处理主要要求我们从键盘输入一个班的成绩,包括学生的学号,学生的各科成绩(总共五科),将输入的学生信息存放在数组grade中,然后用编写的程序来实现计算和显示学生学号和名次的功能,为了实现该项功能,将通过计算每个学生的平均成绩,并将其进行排序来实现。结果保存在rank数组中。使用者可以根据具体的菜单选项进行操作。例外,为了使程序大的功能较为完整点,为了让使用更好的使用该程序,我在原来的要求上增加了几个功能模块,如查询、删除和退出功能。

7、 2、功能模块的划分 1、模块图 整个程序有5个功能模块构成,分别是输入信息模块、显示信息模块、查询信息模块、删除信息模块和退出菜单模块,他们之间的关系如下模块图所示: 开始 选择功能 I L S D Q 删除信息 显示信息 录入信息 查询信息 学号、名次 退出程序 结束 2、程序模块分析: 此程序主要分为大模块,包

8、括主模块,输入模块和输出模块 1.主模块: 从键盘输入学生的学号、分数,并在屏幕上显示学生的学号和名次,其功能是根据输入的学生分数,计算并显示学生名次。此处采用冒泡排序法,并且一个学生的名次等于分数高于该生的学生人数加1。 2.输入模块: 以学号为序从键盘输入学生分数,各个分数之间用逗号隔开,最后用回车符结束。再把学生成绩存入grade数组。其功能是接收学生的分数,并将从键盘输入的十进制数转换为二进制。 3.输出模块: 从RANK数组取得学生名次,把学生名次以学号为序在屏幕上显示,其功能是显示学生的名次。 4.查询模块: 此模块是根据输入的查询方式对存在文档里的信息进行查询

9、,可以按学号查询或按成绩查询,并在屏幕上显示查询的信息。 5.删除模块: 删除模块是在查询模块的基础上对查询的内容进行删除。 3、主要功能的实现 一、功能模块的分析 此次班级成绩处理程序使用了5个功能模块,分别是输入信息模块、显示信息模块、查询信息模块、删除信息模块和退出菜单模块,使用者只需要根据界面的菜单提示选择进行相应的功能模块就可以了。 部分功能模块如下: 1.菜单功能源代码: INPUT: MOV AH,0 IN

10、T 16H CMP AH,26H ;IS L? JNZ NEXT1 CALL LIST JMP MAINLOOP NEXT1: CMP AH,17H ;IS I? JNZ NEXT2 CALL INSERT JMP MAINLOOP NEXT2: CMP AH,1FH ;IS S? JNZ NEXT3

11、 MOV STATE,S CALL SEARCH JMP MAINLOOP NEXT3: CMP AH,20H ;IS D? JNZ NEXT4 MOV STATE,D CALL SEARCH JMP MAINLOOP NEXT4: CMP AH,10H ;IS Q? JNZ INPUT RET 此功能根据提示选择相应的选

12、项进行操作,“S”为查询功能,“I”为输入功能,“D”为删除功能,“L”为显示功能,“Q”则退出选项。 2、输入功能模块部分代码 GETSTR MACRO ADDR LOCAL EXT,CHAR,SPACE MOV BX,0 SPACE: MOV &ADDR&[BX],0 INC BX CMP BX,10 JL SPACE MOV BX,0 CHAR: MOV AH,1 INT 21H

13、 CMP AL,13 JZ EXT CMP AL,10 JZ EXT CMP BX,9 JG CHAR MOV &ADDR&[BX],AL INC BX JMP CHAR EXT: ENDM 此输入信息模块用数组来接受学生信息,并且限制了信息的长度,在程序中可连续调用该模块来满足用户连续输入学生信息的要求,并将其信息存入到了grade数组中。 3、

14、删除模块和查询模块有着大部分相同的代码,删除模块就包含了查询模块,它首先就必须根据输入的学生信息在文件数组里对信息进行查询后才能进行删除的操作,其部分代码为: CMPLOOP: MOV AH,14H LEA DX,MYFCB INT 21H CMP AL,01 JNZ NEXT JMP EXITS NEXT: CLD MOV AL,10

15、 MUL WAY LEA SI,VALUE LEA DI,N ADD DI,AX MOV CX,10 REPE CMPSB JNZ CMPLOOP SHOW PRINT MOV FLAG,1 MOV CL,RECID CMP STATE,D JNE RETURN DEL: MOV AH,14H

16、 LEA DX,MYFCB INT 21H CMP AL,0 JNZ W_END SUB RECID,2 MOV AH,15H LEA DX,MYFCB INT 21H INC RECID JMP DEL W_END: CLD LEA DI,MYDTA MOV

17、 CX,50 MOV AL,0 REP STOSB SUB RECID,1 MOV AH,15H MOV MYDTA,1AH LEA DX,MYFCB INT 21H SHOW DELOK RETURN: MOV RECID,CL JMP CMPLOOP EXITS: CALL CLOSEF CMP FLAG,0

18、 JNZ EXT SHOW NOTHIS EXT: MOV FLAG,0 POP DX POP CX POP BX POP AX RET SEARCH ENDP 查询或删除功能可以根据学生的学号或各科成绩来进行查询或删除,如果输入有误将提示:error,无误的话就可以直接输入信息进行查询和删除的操作。 二、流程图举例: 查询功能模块流程图

19、开始 选择功能选项 S Q 选择查询方式 按序号查询 按科目成绩 查询 显示查询信息 结束 4、程序调试 1.首先调试的时候,总是不能显示之前所输入的学生信息数据,每次都必须重新输入,通过请教老师同学得到了解决,在程序里使用了文件的管理,将每次的输入都增添在了文档里,每次输入、删除后的信息都保存在该文件中。程序也用了“MYDTA LABEL BYTE"来建立学生信息的磁盘卷标,使程序更加完善。 2.这个程序要求写入

20、信息并排学生名次,计算学生平均分倒是很简单,要是单独将平均分排序也不太难,问题是我不知道将其综合,名次老和学生学号对不上号,不过在老师的帮助下也得到了解决。 3.程序算法解决完了就是要注意一些较为基础的问题,在定义变量的时候不能用特殊的名称,否则会造成那很多错误,造成不必要的时间浪费。 4.我的程序菜单较为简单,调试时输入功能界面如下: 查询或删除功能的界面如下:如图一所示,为输入错误的信息导致界面显示ERROR,图二则是正常的情况下运行的界面。 图一

21、 图二 5、总结 此次汇编课程设计是在开学的第一周,虽说是已经开学了,但是学习状态可以说还是零。当接到任务书时我的心里有说不出的高兴,班级学生成绩处理,这个课题对我来说再熟悉不过了,从大一的C课程设计到C++面对对象的课程设计,我一直做着与学生成绩相关的题目,虽然还没从假期的松散状态缓过来,但是一点也不怕,感觉自己能轻松完成这熟悉的课设,但是事实却让我不敢想象。 班级成绩处理程序设计要求从键盘输入学生的基本信息,如学生的学号、各科的成绩,然后将信息存入grade数组中,并要求处理数据将相应的学生学号和名次存放在

22、rank数组中,并随时可以根据使用者的意思显示出来。面对看上去这么简单的题目,我竟一开始写代码就不知道该怎么动笔。我想首先用数组来存放学生的成绩,并通过编简单的程序计算每学生的平均,可却不知道该怎么将学生的学号和平均成绩捆绑在一起来进行排序。想到方法又卡住了,就这样想了很久也没能解决问题。要做好一个简单的程序首先就是要将思路想好,然后才能动笔编个好多程序,但是一开始我就没一个完整的思路,想到这我是越来越失去信心了。不过在老师的精心辅导下,我还是努力完成了任务,没有放弃。 “汇编语言程序设计”是计算机专业的重要专业基础课,是从事计算机研究与应用的基础,是计算机专业必修的核心课程之一,为更好的培

23、养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力,对这门课开设了课程设计。汇编语言程序设计是一门实践性很强的课,能很好的培养学生的创造性和动手能力,所以课程设计也是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,汇编语言已经成为当今计算机应用中空前活跃的领域,是很多技术的基础在生活中可以说得是无处不在。所以认真做好这次课程设计对我们来说很重要,从中我也是收益很多。也有很多感受。 首先,通过这次汇编语言程序设计,让我更深地体会到了上机操作有助于将书本上的知识系统化、现实化,更加锻炼了我自己的查漏补缺的能力。书本上的知识永远是死的,只有将其运用到实际的生活

24、中才会变成活的,而课设恰好给了我们这样一个机会。 其次,课程设计是一个综合性的课程,不仅能检测我们的学习这门课的熟练程度,还能让我们温习课程,达到复习和巩固的效果,在课程设计的过程中我们不断地遇到问题,不断的在图书馆和网上、书本上查找资料,不断的向老师、同学请教问题,所以慢慢的解决问题,而这就是一个不断提升自己的过程。课程设计也教会了我们怎么样利用自己身边有的资源,如书本、网络、老师和同学,怎样和同学互相学习、互相帮助、互相合作。 总之,此次课程设计算是个较为完整的程序,将学到过的知识如中段程序、输入输出程序,DOS功能的调用,指令系统等综合起来,让我的知识更加系统化,只是还是存在些问题,

25、相信有了这次课程设计,我的学习兴趣更大,一定会在今后的学习和生活中同样做到查漏补缺,争取做到更好。 6、附件 源程序清单: DATA SEGMENT MYFCB LABEL BYTE ; files FCB FDRIVER DB 0 FNAME DB STUDENTS FEXT DB MAO FBLOCK DW 0 RECSIZE DW 50

26、 FSIZE DW 2 DUP(?) FDATE DW ? FPATH DB 10 DUP(?) RECID DB 0 RECBK DW 2 DUP(?) SEL DB List Insert Search Delete quit >>$ PROMPT DB 13,10, Num s1 s2 s3 s4 s5 $ NUM DB 13,10, 1. NUM :$ sb1

27、 DB 13,10, 2. s1 :$ sb2 DB 13,10, 3. s2 :$ sb3 DB 13,10, 4. s2 :$ sb4 DB 13,10, 5. s3 :$ sb5 DB 13,10, 6. s3 :$ ERRMSG DB 13,10, *** ERROR ! ***$ WHICH DB 13,10,SELECT A WAY(1--5) :$ STRING DB 13,10

28、,INPUT THE VALUE :$ NOTHIS DB 13,10,NO THIS STUDENT !$ DELOK DB 13,10,THE RECORD DELET SUCCESS !$ FLAG DB 0 WAY DB ? STATE DB ? VALUE DB 10 DUP( ) PRINT DB 13,10 MYDTA LABEL BYTE N DB 10 DUP( )

29、 s1 DB 10 DUP( ) s2 DB 10 DUP( ) s3 DB 10 DUP( ) s4 DB 10 DUP( ) s5 DB 10 DUP( ) DB $ DATA ENDS SHOW MACRO ADDR MOV AH,9 LEA DX,ADDR INT 21H ENDM GETS

30、TR MACRO ADDR LOCAL EXT,CHAR,SPACE MOV BX,0 SPACE: MOV &ADDR&[BX],0 INC BX CMP BX,10 JL SPACE;小于10就转移,即BX连续自增(限制数组中一个元素的长度) MOV BX,0 CHAR: MOV AH,1 INT 21H;输入的一个字符放到AL中 CMP AL,13 JZ

31、 EXT CMP AL,10 JZ EXT;输入回车键和空格键的话就退出输入 CMP BX,9 JG CHAR;大于9再次输入 MOV &ADDR&[BX],AL;将输入的数据放在ADDR数组中 INC BX JMP CHAR ;最长输入10个元素 EXT: ENDM CODE SEGMENT ASSUME CS:CODE,DS:DATA,E

32、S:DATA MAIN PROC FAR PUSH DS;将DS进栈 SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV ES,AX MOV AH,1AH LEA DX,MYDTA INT 21H JMP INIT; MAINLOOP: MOV AH,1 I

33、NT 21H;输入一个字符保存在AL中 CMP AL, JNE MAINLOOP;AL不为空格键就转移再次输入,即输入空格键就结束了 INIT: MOV AH,6 ;屏幕初始化 MOV AL,0 MOV CH,0 MOV CL,0 MOV DH,24 MOV DL,79 MOV BH,7 INT 10H

34、 MOV AH,2;置光标位置 MOV DH,1 MOV DL,1 MOV BH,0 INT 10H SHOW SEL ;显示目录 INPUT: MOV AH,0 INT 16H ;建文件 CMP AH,26H ;是L? JNZ NEXT1 CALL LIST J

35、MP MAINLOOP NEXT1: CMP AH,17H ; 是I? JNZ NEXT2 CALL INSERT JMP MAINLOOP NEXT2: CMP AH,1FH ; 是S? JNZ NEXT3 MOV STATE,S CALL SEARCH JMP MAINLOOP NEXT3: CMP AH,20H ;

36、是D? JNZ NEXT4 MOV STATE,D CALL SEARCH JMP MAINLOOP NEXT4: CMP AH,10H ; 是Q? JNZ INPUT RET MAIN ENDP LIST PROC NEAR ;列出学生信息 CALL OPENF MOV RECID,0 CMP FLAG,0

37、 JZ CONTINUE RET CONTINUE: SHOW PROMPT LISTLOOP: MOV AH,14H LEA DX,MYFCB INT 21H CMP AL,01 JNE N1 JMP FINISH N1: CMP AL,0 JE N2 JMP FINISH N2:

38、 SHOW PRINT JMP LISTLOOP FINISH: CALL CLOSEF RET LIST ENDP INSERT PROC NEAR ;插入学生的信息 MOV RECID,0 CMP FLAG,0 JZ READL RET READL: MOV AH,14H L

39、EA DX,MYFCB INT 21H CMP AL,01 JE WRITES CMP AL,0 JE READL WRITES: SHOW NUM ;插入学生信息 GETSTR N SHOW sb1 GETSTR s1 SHOW sb2 GETSTR s2 SHOW sb3

40、 GETSTR s3 SHOW sb4 GETSTR s4 SHOW sb5 GETSTR s5 MOV AH,15H ;写入文件 LEA DX,MYFCB INT 21H CALL CLOSEF RET INSERT ENDP SEARCH PROC NEAR PUSH AX

41、 PUSH BX PUSH CX PUSH DX CALL OPENF MOV RECID,0 CMP FLAG,0 JZ START RET START: SHOW NUM SHOW sb1 SHOW Sb2 SHOW sb3 SHOW sb4 SHOW sb5

42、 SHOW WHICH INWAY: MOV AH,1 ;根据查找选项查询学生信息 INT 21H CMP AL,1 JL INWAY CMP AL,5 JG INWAY SUB AL,31H MOV WAY,AL SHOW STRING GETSTR VALUE S

43、HOW PROMPT CMPLOOP: MOV AH,14H LEA DX,MYFCB INT 21H CMP AL,01 JNZ NEXT JMP EXITS NEXT: CLD MOV AL,10 MUL WAY LEA SI,VALUE LEA DI,N

44、 ADD DI,AX MOV CX,10 REPE CMPSB JNZ CMPLOOP SHOW PRINT MOV FLAG,1 MOV CL,RECID CMP STATE,D JNE RETURN DEL: MOV AH,14H ; 将查询到的信息删除 LEA DX,MYFCB INT

45、 21H CMP AL,0 JNZ W_END SUB RECID,2 MOV AH,15H LEA DX,MYFCB INT 21H INC RECID JMP DEL W_END: CLD LEA DI,MYDTA MOV CX,50 MOV AL,0 REP STOSB

46、 SUB RECID,1 MOV AH,15H MOV MYDTA,1AH LEA DX,MYFCB INT 21H SHOW DELOK RETURN: MOV RECID,CL JMP CMPLOOP EXITS: CALL CLOSEF CMP FLAG,0 JNZ EXT SHOW NOTHIS EXT: MOV

47、 FLAG,0 POP DX POP CX POP BX POP AX RET SEARCH ENDP OPENF PROC NEAR ;打开或建立文件 MOV AH,0FH LEA DX,MYFCB INT 21H OR AL,AL JNZ CREATE RET C

48、REATE: MOV AH,16H LEA DX,MYFCB INT 21H OR AL,AL JNZ SETFLAG RET SETFLAG: MOV FLAG,1 SHOW ERRMSG RET OPENF ENDP CLOSEF PROC NEAR MOV AH,10H LEA DX,MYFCB I

49、NT 21H RET CLOSEF ENDP CODE ENDS END MAIN 计算机科学与技术系课程设计评分表 课程名称: 项 目 评 价 设计方案的合理性与创造性 设计与调试结果 设计说明书的质量 答辩陈述与回答问题情况 课程设计周表现情况 综合成绩 教师签名: 日 期: (注:1.此页附在课程设计报告之后;2.综合成绩按优、良、中、及格和不及格五级评定。)

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

相关资源

更多
正为您匹配相似的精品文档

相关搜索

关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!