湖南工程学院汇编语言程序设计报告.12035.pdf

上传人:得** 文档编号:79417718 上传时间:2023-03-21 格式:PDF 页数:19 大小:600.50KB
返回 下载 相关 举报
湖南工程学院汇编语言程序设计报告.12035.pdf_第1页
第1页 / 共19页
湖南工程学院汇编语言程序设计报告.12035.pdf_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《湖南工程学院汇编语言程序设计报告.12035.pdf》由会员分享,可在线阅读,更多相关《湖南工程学院汇编语言程序设计报告.12035.pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 课 程 设 计 报 告 课程名称 汇编语言程序设计 课题名称1.比赛成绩计算程序 2.显示彩条程序 专 业 计算机科学与技术 班 级 计算机 1001 学 号 201003010125 姓 名 张庆华 指导教师 唐北平 2013 年 1 月 10 日 湖南工程学院 课 程 设 计 任 务 书 课程名称 汇编语言程序设计 课 题 1.比赛成绩计算程序 2.显示彩条程序 专业班级 计算机 1001 学生姓名 张庆华 学 号 201003010125 指导老师 唐北平 审 批 唐北平 任务下达日期 2013 年 1 月 5 日 任务完成日期 2013 年 1 月 10 日 一、设计内容与设计要求

2、1设计内容:通过本周的课程设计,学生能够巩固所学的基础知识,并能够使学生更加熟练运用汇编程序设计语言来掌握综合汇编程序设计的方法和过程,以及为设计其它应用软件提供帮助,进而提高学生的软件设计能力。(1)、编制一计算比赛成绩的程序,要求完成以下功能:a、9 名评委,每个评委给分范围为0100(整数);b、9 名评委给分中,去掉一个最高分和一个最低分,剩余7 名评委的平均分即为参赛者的得分(精确到小数点二位);c、将得分在光标位置处显示出来。(2)、编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于 30 字的 grade数组中,各数据的格式为:学号,成绩 1,成绩 2,成绩 5 然后根据

3、 grade 中的学生成绩,把学生名次填入 rank 数据组中,并显示出来,格式为:学号,名次(3)、利用 INT 1CH(大约每秒中断 18.2 次)编写一个中断驻留程序,要求在屏幕的右上角显示计算机中当前系统时间,显示格式为 时:分:秒:1/100 秒(4)、输入一个菱形的两条对角线长,在屏幕上用*号画出一个彩色的菱形。(5)、设置图形方式并显示彩条,要求:选择背景色为蓝色,调色板为 0,然后每行显示一种颜色,每四行重复一次,一直到整个屏幕都显示出彩条 2设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。(

4、1)、设计正确,方案合理。(2)、界面友好,使用方便。(3)、程序精炼,结构清晰。(4)、设计报告 5000 字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。(5)、上机演示。(6)、按学号顺序选课题号,并在规定的时间内独自完成相关课题的汇编源程序编 写、调整和运行。源程序及编译生成各文件均保存在软盘中;(7)、按本任务书的要求,按附录的要求编写课程设计报告(Word 文档格式)。并用 A4 的复印纸打印并装订;二、进 度 安 排 第 19 周:星期 1 星期 2 星期 3 星期 4 附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4 大小的图纸及程序清单)。正文

5、的格式:一级标题用 3 号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为 22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在 5000 字以上(不含程序原代码)。目 录 一、比赛成绩计算程序.1 1.主要功能.1 2.功能模块.1 3.详细设计.2 4.系统调试.4 5.总结.5 6.源程序代码.6 二、显示彩条程序.9 1.主要功能.9 2.功能模块.9 3.详细设计.10 4.系统调试.11 5.总结.1

6、2 6.源程序代码.13 1 一、比赛成绩计算程序 1.主要功能 9 名评委,每个评委给分范围为 0100(整数);9 名评委给分中,去掉一个最高分和一个最低分,剩余 7 名评委的平均分即为参赛者的得分(精确到小数点二位);将得分在光标位置处显示出来。2.功能模块 图 1 系统功能模块 开始 9 个 评委 分 别输 入 分数 输 出最 终得 分 求平均分数 将9个 分数 求和 去掉一个最低分与一个最高分 2 3.详细设计 部分功能如下:9 个评委分别输入分数,代码如下 ONE:LEA DX,STR1 MOV AH,09H INT 21H MOV AH,01H INT 21H SUB AL,30

7、H MOV Y,AL MOV AH,01H INT 21H SUB AL,30H MOV Z,AL MOV AH,02H ;设置光标位置 MOV BH,0 ;设置页 MOV DH,X ;设置行位置 MOV DL,0 ;设置列位置 INT 10H MOV DL,0AH MOV AH,02H INT 21H INC X CMP X,01H JE A1 CMP X,02H JE A2 CMP X,03H JE A3 CMP X,04H JE A4 CMP X,05H JE A5 CMP X,06H JE A6 CMP X,07H JE A7 CMP X,08H JE A8 CMP X,09H JE

8、A9 A1:MOV AH,Y MOV AL,Z MOV A,AX JMP ONE A2:MOV AH,Y MOV AL,Z MOV B,AX JMP ONE A3:MOV AH,Y MOV AL,Z MOV J,AX JMP ONE A4:MOV AH,Y MOV AL,Z MOV D,AX JMP ONE A5:MOV AH,Y MOV AL,Z MOV E,AX JMP ONE A6:MOV AH,Y MOV AL,Z MOV F,AX JMP ONE A7:MOV AH,Y MOV AL,Z MOV G,AX JMP ONE A8:MOV AH,Y 3 MOV AL,Z MOV H,AX

9、 JMP ONE A9:MOV AH,Y MOV AL,Z MOV I,AX 找出最高分与最低分,代码如下 LEA DI,A ;取偏移地址 MOV BX,DI MOV Z,00H NEXT1:ADD DI,02H INC Z CMP Z,09H JE NEXT2 CMP BX,DI;比较大小 JBE NEXT1 MOV BX,DI;将最小的数放入BL JMP NEXT1 NEXT2:MOV M,BX ;将最小的数放入M MOV Z,00H LEA DI,A ;取偏移地址 MOV CX,DI NEXT3:ADD DI,02H INC Z CMP Z,09H JE NEXT4 CMP CX,DI

10、JAE NEXT3 MOV CX,DI;将最大的数放入CL JMP NEXT3 NEXT4:MOV N,CX ;将最大的数放入 N 4 4.系统调试 此次实验中,我遇到了很多不懂的问题,不过通过老师和同学的帮助跟上网查找资料,最终了解并掌握了改程序设计的方法。首先是循环输入分数的问题,再就是设置显示方式;由于对指令的不熟悉翻过课本之后才知道。程序运行结果如下图:图 2 程序运行结果 5 5.总结 首先,接到设计题目之后,在对本题目进行分析的时候,我懂得了一个很重要的道理,那就是说一个程序的产生需要一个对题目要求有一个正确全面的分析。其次,就该考虑程序算法的问题了,一个好的算法是一个好程序的灵魂

11、,也决定了一个程序的质量。课设虽然有些疲劳和困倦,但带给我很多的收获。汇编已经学了一个学期了,有许多知识都存在似懂非懂的现象,这种现象通过实际的上机操作,已经减少了许多。对这些知识也有了更深的理解和很好的掌握。也有很多理论上说得过去的代码,但到了实际操作,却是行不通的。这种困惑,有许多已经通过实际操作解决了,并能够深刻认识,但也有很多没有明白。只能避过这些方法,换方法实现。我觉得写程序,应该先找到该程序中的核心地方,用多种方法来实现该核心,这才可能避免等到发现逻辑上或者编译器不支持上的错误,才来想补救的措施,这样花费时间在想补救措施是很不值得的。这次的课程设计,真是让我充分的感觉到了要自己设计

12、一个程序是多么的难,我清楚的意识到自己的水平有多么的薄弱,课程的知识学得有多么的不扎实。以后还会有很多的课程设计,一定要吸取这次的教训,把知识学懂学透学精,真正的为我所用,这样走上社会我才能真正的发挥所长。6 6.源程序代码 DATAS SEGMENT M DW 0 N DW 0 L DB 0 Q DB 0 R DB 0 S DB 0 U DW 0 W DB 0 X DB 0 Y DB 0 Z DB 0 A DW?B DW?J DW?D DW?E DW?F DW?G DW?H DW?I DW?STR1 DB Please enter the scores:$STR2 DB The score

13、is:$DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START:MOV AX,DATAS MOV DS,AX ONE:LEA DX,STR1 MOV AH,09H INT 21H MOV AH,01H INT 21H SUB AL,30H MOV Y,AL MOV AH,01H INT 21H SUB AL,30H MOV Z,AL MOV AH,02H ;设置光标位置 MOV BH,0 ;设置页 MOV DH,X ;设置行位置 MOV DL,0 ;设置列位置 INT 10H MOV DL,0AH MOV AH,02H INT 21H I

14、NC X CMP X,01H JE A1 CMP X,02H JE A2 CMP X,03H JE A3 CMP X,04H JE A4 CMP X,05H JE A5 CMP X,06H JE A6 CMP X,07H JE A7 CMP X,08H JE A8 CMP X,09H JE A9 A1:MOV AH,Y MOV AL,Z MOV A,AX JMP ONE A2:MOV AH,Y MOV AL,Z MOV B,AX JMP ONE A3:MOV AH,Y MOV AL,Z MOV J,AX 7 JMP ONE A4:MOV AH,Y MOV AL,Z MOV D,AX JMP O

15、NE A5:MOV AH,Y MOV AL,Z MOV E,AX JMP ONE A6:MOV AH,Y MOV AL,Z MOV F,AX JMP ONE A7:MOV AH,Y MOV AL,Z MOV G,AX JMP ONE A8:MOV AH,Y MOV AL,Z MOV H,AX JMP ONE A9:MOV AH,Y MOV AL,Z MOV I,AX LEA DI,A ;取偏移地址 MOV BX,DI MOV Z,00H NEXT1:ADD DI,02H INC Z CMP Z,09H JE NEXT2 CMP BX,DI ;比较大小 JBE NEXT1 MOV BX,DI ;

16、将最小的数放入BL JMP NEXT1 NEXT2:MOV M,BX ;将最小的数放入M MOV Z,00H LEA DI,A ;取偏移地址 MOV CX,DI NEXT3:ADD DI,02H INC Z CMP Z,09H JE NEXT4 CMP CX,DI JAE NEXT3 MOV CX,DI ;将最大的数放入CL JMP NEXT3 NEXT4:MOV N,CX ;将最大的数放入N MOV AX,A ;求总分 ADD AX,B ADD AX,J ADD AX,D ADD AX,E ADD AX,F ADD AX,G ADD AX,H ADD AX,I SUB AX,N ;去掉最高分

17、 SUB AX,M ;去掉最低分 MOV Q,AH MOV R,AL MOV DL,R MOV DH,00H MOV AX,DX MOV L,0AH DIV L MOV S,AH MOV AH,Q ADD AH,AL MOV AL,AH MOV AH,00H MOV U,07H DIV U MOV W,AL ADD S,AH 8 LEA DX,STR2 MOV AH,09H INT 21H MOV DL,W ADD DL,30H MOV AH,02H INT 21H MOV DL,S MOV DH,00H MOV AX,DX DIV U MOV W,AL MOV S,AH MOV DL,W A

18、DD DL,30H MOV AH,02H INT 21H MOV DL,.MOV AH,02H INT 21H MOV AL,S MUL L MOV S,AL MOV DL,S MOV DH,00H MOV AX,DX DIV U MOV W,AL MOV S,AH MOV DL,W ADD DL,30H MOV AH,02H INT 21H MOV AL,S MUL L MOV S,AL MOV DL,S MOV DH,00H MOV AX,DX DIV U MOV W,AL MOV S,AH MOV DL,W ADD DL,30H MOV AH,02H INT 21H MOV AH,4CH

19、 INT 21H CODES ENDS END START 9 二、显示彩条程序 1.主要功能 设置图形方式并显示彩条;选择背景色为蓝色,调色板为 0,然后每行显示一种颜色,每四行重复一次,一直到整个屏幕都显示出彩条。2.功能模块 图 1 系统功能模块 开始 设置颜色 设置颜色种类 设 置调 色板 设 置显 示方 式 设 置彩 条宽 度 输出 彩 条 1 0 3.详细设计 部分功能模块如下:设置显示方式的功能代码如下 MOV AH,00H ;设置显示方式 MOV AL,10H ;选择显示方式10h(16色图形)INT 10H 设置调色板及背景颜色的功能代码如下 MOV AH,10H ;显示寄存

20、器控制 MOV AL,00H ;设置调色板寄存器 MOV BH,01H ;背景颜色设置为蓝色 MOV BL,00H ;选择0号调色板 INT 10H 设置显示位置、彩条宽度及彩条颜色的功能代码如下 MOV BH,00H ;显存的第0页 MOV CX,00H ;起始列号为0列 MOV DX,00H ;起始行号为0行 MOV DI,00H ;设置彩条的宽度 ONE:MOV BL,02H ;第一条彩条的颜色设为绿色 TWO:MOV DI,00H ADD BL,01H ;设置彩条的颜色 CMP BL,07H ;设置彩条颜色种类,每四行循环一次 JE ONE 1 1 4.系统调试 在这个课题中,我也遇到

21、了很多不懂的问题,最终通过上网查找资料后,了解并掌握了彩条图形设计的方法。第一个问题就是是像素设置问题,要用到调色板,判断是否达到极值。第二个问题就是设置显示方式,很多的指令书上都没有详细说明使用的条件及方法,在网上查找资料之后才知道。最后就是彩条颜色,要用 4 种不同颜色显示;最终经过不断的调试和修改,使题目中所有要求都得到满足。程序运行结果如下图 图 2 程序运行结果 1 2 5.总结 这个课程设计是利用我们平时所学的汇编知识编写一个彩条图形,刚拿到题目的时候觉得这个课题好容易。但是随着编写程序的过程,我逐渐觉得,这个课题并不像我刚开始想的那样简单。因为平时汇编语言的知识掌握的并不牢固,并

22、且也没有过像这次做课设一样用汇编语言做过系统的编程实践。不过,通过不断的查找资料,翻看课本,最终还是把这个程序给做好了。这次课程设计让我更加懂得以后在面临困难与挫折的时候要有平和的心态,要有冷静的头脑,坦然的面对,这样才能解决问题。有了整体思路后,编写程序就变得简单的多了。通过本次数据结构的课程设计,我学会了怎样去借鉴别人的方法和经验,知道了如何整合资料和处理这些资料的能力,这位以后做毕设的论文打下了基础,使我感觉比较好的是有一种成功的喜悦,虽然在编译的时候会经常因为一些小的错误而心烦意乱,但是也不失为一件好事,失败的越多积累的经验越丰富,对人的考验也比较多,那么在最后编译成功时的喜悦就越浓烈

23、,也是自己的能力有了进一步的提高。由于知识和经验的不足,所以在以后还是需要较多的努力的,还是会在以后的学习过程中不断地提高和改进的。1 3 6.源程序代码 CODES SEGMENT ASSUME CS:CODES START:MOV AH,00H ;设置显示方式 MOV AL,10H ;选择显示方式10h(16色图形)INT 10H MOV AH,10H ;显示寄存器控制 MOV AL,00H ;设置调色板寄存器 MOV BH,01H ;背景颜色设置为蓝色 MOV BL,00H ;选择0号调色板 INT 10H MOV BH,00H ;显存的第0页 MOV CX,00H ;起始列号为0列 M

24、OV DX,00H ;起始行号为0行 MOV DI,00H ;设置彩条的宽度 ONE:MOV BL,02H ;第一条彩条的颜色设为绿色 TWO:MOV DI,00H ADD BL,01H ;设置彩条的颜色 CMP BL,07H ;设置彩条颜色种类,每四行循环一次 JE ONE THREE:MOV AH,0CH ;写像素 MOV AL,BL ;像素的颜色 INT 10H INC CX CMP CX,28AH ;是否达到一行最大值 JNE THREE MOV CX,00H ;起始列号为0列 INC DI CMP DI,10 JE TWO INC DX CMP DX,15EH ;是否达到列的最大值 JNE THREE MOV AH,01H ;输入一个字符后按任意键结束程序 INT 21H MOV AH,4CH INT 21H CODES ENDS END START 计算机与通信学院课程设计评分表 课程名称:汇编语言程序设计 项 目 评 价 设计方案的合理性与创造性 设计与调试结果 设计说明书的质量 答辩陈述与回答问题情况 课程设计周表现情况 综合成绩 教师签名:日 期:

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

当前位置:首页 > 应用文书 > 工作报告

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁