




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 设 计 报 告课程名称 汇编语言程序设计 课题名称1.比赛成绩计算程序2.显示彩条程序专 业 计算机科学与技术 班 级 计算机 1001 学 号 201003010125 姓 名 张庆华 指导教师 唐北平 2013年 1 月 10 日湖南工程学院课 程 设 计 任 务 书课程名称 汇编语言程序设计 课 题 1.比赛成绩计算程序2.显示彩条程序 专业班级 计算机1001 学生姓名 张庆华 学 号 201003010125 指导老师 唐北平 审 批 唐北平 任务下达日期 2013 年 1 月 5 日任务完成日期 2013 年 1 月 10 日一、设计内容与设计要求 1设计内容:通过本周的课
2、程设计,学生能够巩固所学的基础知识,并能够使学生更加熟练运用汇编程序设计语言来掌握综合汇编程序设计的方法和过程,以及为设计其它应用软件提供帮助,进而提高学生的软件设计能力。(1)、编制一计算比赛成绩的程序,要求完成以下功能: a、9名评委,每个评委给分范围为0100(整数); b、9名评委给分中,去掉一个最高分和一个最低分,剩余7名评委的平均分即为参赛者的得分(精确到小数点二位); c、将得分在光标位置处显示出来。(2)、编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于30字的grade数组中,各数据的格式为:学号,成绩1,成绩2,成绩5然后根据grade中的学生成绩,把学生名次填入
3、rank数据组中,并显示出来,格式为:学号,名次(3)、利用INT 1CH(大约每秒中断18.2次)编写一个中断驻留程序,要求在屏幕的右上角显示计算机中当前系统时间,显示格式为时:分:秒:1/100秒(4)、输入一个菱形的两条对角线长,在屏幕上用*号画出一个彩色的菱形。(5)、设置图形方式并显示彩条,要求: 选择背景色为蓝色,调色板为0,然后每行显示一种颜色,每四行重复一次,一直到整个屏幕都显示出彩条2设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。(1)、设计正确,方案合理。(2)、界面友好,使用方便。(3
4、)、程序精炼,结构清晰。(4)、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。(5)、上机演示。(6)、按学号顺序选课题号,并在规定的时间内独自完成相关课题的汇编源程序编写、调整和运行。源程序及编译生成各文件均保存在软盘中; (7)、按本任务书的要求,按附录的要求编写课程设计报告(Word文档格式)。并用A4的复印纸打印并装订; 二、进度安排第 19 周: 星期1 星期2 星期3 星期4 附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22
5、。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程序原代码)。 目 录一、比赛成绩计算程序. .1 1. 主要功能1 2. 功能模块1 3. 详细设计2 4. 系统调试4 5. 总结5 6. 源程序代码6二、显示彩条程序.9 1. 主要功能9 2. 功能模块9 3. 详细设计10 4. 系统调试11 5. 总结12 6. 源程序代码13 一、比赛成绩计算程序 1. 主要功能 9名评委,每个评委给分范
6、围为0100(整数);9名评委给分中,去掉一个最高分和一个最低分,剩余7名评委的平均分即为参赛者的得分(精确到小数点二位);将得分在光标位置处显示出来。2. 功能模块 开始 求平均分数9个评委分别输入分数将9个分数求和去掉一个最低分与一个最高分输出最终得 分 图1系统功能模块 3. 详细设计部分功能如下:9个评委分别输入分数,代码如下1ONE:LEA DX,STR1MOV AH,09HINT 21H MOV AH,01H INT 21H SUB AL,30H MOV Y,AL MOV AH,01H INT 21H SUB AL,30H MOV Z,ALMOV AH,02H ;设置光标位置MOV
7、 BH,0 ;设置页 MOV DH,X ;设置行位置MOV DL,0 ;设置列位置INT 10H MOV DL,0AHMOV AH,02HINT 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 A9A1:MOV AH,YMOV AL,Z MOV A,AX JMP ONEA2:MOV AH,YMOV AL,Z MOV B,AX JMP ONEA3
8、:MOV AH,YMOV AL,Z MOV J,AX JMP ONEA4:MOV AH,YMOV AL,Z MOV D,AX JMP ONEA5:MOV AH,YMOV AL,Z MOV E,AX JMP ONEA6:MOV AH,YMOV AL,Z MOV F,AX JMP ONEA7:MOV AH,YMOV AL,Z MOV G,AX JMP ONEA8:MOV AH,YMOV AL,Z MOV H,AX JMP ONEA9:MOV AH,YMOV AL,ZMOV I,AX1找出最高分与最低分,代码如下2LEA DI,A ;取偏移地址 MOV BX,DI MOV Z,00HNEXT1: A
9、DD DI,02H INC ZCMP Z,09H JE NEXT2 CMP BX,DI ;比较大小 JBE NEXT1MOV BX,DI;将最小的数放入BLJMP NEXT1NEXT2:MOV M,BX ;将最小的数放入MMOV Z,00HLEA DI,A ;取偏移地址 MOV CX,DINEXT3:ADD DI,02HINC ZCMP Z,09H JE NEXT4 CMP CX,DIJAE NEXT3MOV CX,DI;将最大的数放入CLJMP NEXT3NEXT4:MOV N,CX ;将最大的数放入N4. 系统调试此次实验中,我遇到了很多不懂的问题,不过通过老师和同学的帮助跟上网查找资料,
10、最终了解并掌握了改程序设计的方法。首先是循环输入分数的问题,再就是设置显示方式;由于对指令的不熟悉翻过课本之后才知道。程序运行结果如下图: 图2 程序运行结果5. 总结首先,接到设计题目之后,在对本题目进行分析的时候,我懂得了一个很重要的道理,那就是说一个程序的产生需要一个对题目要求有一个正确全面的分析。其次,就该考虑程序算法的问题了,一个好的算法是一个好程序的灵魂,也决定了一个程序的质量。课设虽然有些疲劳和困倦,但带给我很多的收获。汇编已经学了一个学期了,有许多知识都存在似懂非懂的现象,这种现象通过实际的上机操作,已经减少了许多。对这些知识也有了更深的理解和很好的掌握。也有很多理论上说得过去
11、的代码,但到了实际操作,却是行不通的。这种困惑,有许多已经通过实际操作解决了,并能够深刻认识,但也有很多没有明白。只能避过这些方法,换方法实现。我觉得写程序,应该先找到该程序中的核心地方,用多种方法来实现该核心,这才可能避免等到发现逻辑上或者编译器不支持上的错误,才来想补救的措施,这样花费时间在想补救措施是很不值得的。这次的课程设计,真是让我充分的感觉到了要自己设计一个程序是多么的难,我清楚的意识到自己的水平有多么的薄弱,课程的知识学得有多么的不扎实。以后还会有很多的课程设计,一定要吸取这次的教训,把知识学懂学透学精,真正的为我所用,这样走上社会我才能真正的发挥所长。6. 源程序代码9DATA
12、S SEGMENTM DW 0N DW 0L DB 0Q DB 0R DB 0S DB 0U DW 0W DB 0X DB 0Y DB 0Z 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 is : $ DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS MOV DS,AXONE:LEA DX,STR1MOV AH,0
13、9HINT 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,0AHMOV AH,02HINT 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
14、 A7 CMP X,08H JE A8 CMP X,09H JE A9A1:MOV AH,YMOV AL,Z MOV A,AX JMP ONEA2:MOV AH,YMOV AL,Z MOV B,AX JMP ONEA3:MOV AH,YMOV AL,Z MOV J,AX JMP ONEA4:MOV AH,YMOV AL,Z MOV D,AX JMP ONEA5:MOV AH,YMOV AL,Z MOV E,AX JMP ONEA6:MOV AH,YMOV AL,Z MOV F,AX JMP ONEA7:MOV AH,YMOV AL,Z MOV G,AX JMP ONEA8:MOV AH,YMO
15、V AL,Z MOV H,AX JMP ONEA9:MOV AH,YMOV AL,Z MOV I,AX LEA DI,A ;取偏移地址 MOV BX,DI MOV Z,00HNEXT1: ADD DI,02H INC ZCMP Z,09H JE NEXT2 CMP BX,DI ;比较大小 JBE NEXT1MOV BX,DI ;将最小的数放入BLJMP NEXT1NEXT2:MOV M,BX ;将最小的数放入MMOV Z,00HLEA DI,A ;取偏移地址 MOV CX,DINEXT3:ADD DI,02HINC ZCMP Z,09H JE NEXT4 CMP CX,DIJAE NEXT3M
16、OV CX,DI ;将最大的数放入CLJMP NEXT3NEXT4:MOV N,CX ;将最大的数放入NMOV AX,A ;求总分ADD AX,BADD AX,JADD AX,DADD AX,EADD AX,FADD AX,GADD AX,HADD AX,ISUB AX,N ;去掉最高分SUB AX,M ;去掉最低分MOV Q,AHMOV R,ALMOV DL,RMOV DH,00HMOV AX,DXMOV L,0AHDIV LMOV S,AHMOV AH,QADD AH,ALMOV AL,AHMOV AH,00HMOV U,07HDIV UMOV W,ALADD S,AHLEA DX,STR
17、2MOV AH,09HINT 21HMOV DL,WADD DL,30HMOV AH,02HINT 21HMOV DL,SMOV DH,00HMOV AX,DXDIV UMOV W,ALMOV S,AHMOV DL,WADD DL,30HMOV AH,02HINT 21HMOV DL,.MOV AH,02HINT 21HMOV AL,SMUL LMOV S,ALMOV DL,SMOV DH,00HMOV AX,DXDIV UMOV W,ALMOV S,AHMOV DL,WADD DL,30HMOV AH,02HINT 21HMOV AL,SMUL LMOV S,ALMOV DL,SMOV DH
18、,00HMOV AX,DXDIV UMOV W,ALMOV S,AHMOV DL,WADD DL,30HMOV AH,02HINT 21H MOV AH,4CH INT 21HCODES ENDS END START 二、显示彩条程序1. 主要功能 设置图形方式并显示彩条;选择背景色为蓝色,调色板为0,然后每行显示一种颜色,每四行重复一次,一直到整个屏幕都显示出彩条。2. 功能模块 开始设置颜色种类输出 彩 条设置彩条宽 度设置显示方 式设置颜色设置调色板 图1系统功能模块3. 详细设计部分功能模块如下:设置显示方式的功能代码如下MOV AH,00H ;设置显示方式MOV AL,10H ;选择
19、显示方式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列MOV DX,00H ;起始行号为0行MOV DI,00H ;设置彩条的宽度ONE:MOV BL,02H ;第一条彩条的颜色设为绿色TWO:MOV DI,00HADD BL,01H ;设置彩条的颜色CMP BL,07H ;设置彩条颜
20、色种类,每四行循环一次 JE ONE4. 系统调试在这个课题中,我也遇到了很多不懂的问题,最终通过上网查找资料后,了解并掌握了彩条图形设计的方法。第一个问题就是是像素设置问题,要用到调色板,判断是否达到极值。第二个问题就是设置显示方式,很多的指令书上都没有详细说明使用的条件及方法,在网上查找资料之后才知道。最后就是彩条颜色,要用4种不同颜色显示;最终经过不断的调试和修改,使题目中所有要求都得到满足。程序运行结果如下图图 2 程序运行结果5. 总结 这个课程设计是利用我们平时所学的汇编知识编写一个彩条图形,刚拿到题目的时候觉得这个课题好容易。但是随着编写程序的过程,我逐渐觉得,这个课题并不像我刚
21、开始想的那样简单。因为平时汇编语言的知识掌握的并不牢固,并且也没有过像这次做课设一样用汇编语言做过系统的编程实践。不过,通过不断的查找资料,翻看课本,最终还是把这个程序给做好了。这次课程设计让我更加懂得以后在面临困难与挫折的时候要有平和的心态,要有冷静的头脑,坦然的面对,这样才能解决问题。有了整体思路后,编写程序就变得简单的多了。通过本次数据结构的课程设计,我学会了怎样去借鉴别人的方法和经验,知道了如何整合资料和处理这些资料的能力,这位以后做毕设的论文打下了基础,使我感觉比较好的是有一种成功的喜悦,虽然在编译的时候会经常因为一些小的错误而心烦意乱,但是也不失为一件好事,失败的越多积累的经验越丰富,对人的考验也比较多,那么在最后编译成功时的喜悦就越浓烈,也是自己的能力有了进一步的提高。由于知识和经验的不足,所以在以后还是需要较多的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 氢能源理论试题及答案
- 洁牙师考试题及答案
- 融通物业面试题及答案
- 用地报批面试题及答案
- 音质设计试题及答案
- 广东点心试题及答案
- 2025年电缆工程专业毕业设计开题报告
- 2025年五百强销售面试题目及答案
- 2025年人保轮岗考试题库及答案
- 2025年电力业扩报装考试题库
- 机车乘务员一次作业标准化-机车检查
- 职业健康管理流程图
- 《系统架构-架构与设计》
- 农作物耕作栽培(甘蔗)-新植蔗栽培技术
- 大方县猫场镇硫磺矿渣综合治理工程环评报告
- Sony MD随身听的历史
- Foxconn连接器设计手册
- 学习解读《医疗保障基金使用监督管理条例》PPT课件(带内容)
- GB/T 13384-2008机电产品包装通用技术条件
- GB 11121-2006汽油机油
- 沙尔夫柴油机齿轨卡轨车课件
评论
0/150
提交评论