版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-. z.课 程 设 计 报 告课程名称 汇编语言程序设计 课题名称 1.显示彩色菱形 2.显示系统当前时间专 业 班 级 学 号 姓 名 指导教师 年 月 日-. z.课 程 设 计 任 务 书 课程名称 汇编语言程序设计 课 题 1.显示彩色菱形2.显示系统当前时间 专业班级 学生* 学 号 指导教师 审 批 任务书下达日期 年 月 日任务完成日期 年 月 日-. z.一、设计内容与设计要求 1设计内容:通过本周的课程设计,学生能够稳固所学的根底知识,并能够使学生更加熟练运用汇编程序设计语言来掌握综合汇编程序设计的方法和过程,以及为设计其它应用软件提供帮助,进而提高学生的软件设计能力。(1
2、)、编制一计算比赛成绩的程序,要求完成以下功能: a、9名评委,每个评委给分*围为0100整数; b、9名评委给分中,去掉一个最高分和一个最低分,剩余7名评委的平均分即为参赛者的得分准确到小数点二位; c、将得分在光标位置处显示出来。(2)、编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于30字的grade数组中,各数据的格式为:*,成绩1,成绩2,成绩5然后根据grade中的学生成绩,把学生名次填入rank数据组中,并显示出来,格式为:*,名次(3)、利用INT 1CH大约每秒中断18.2次编写一个中断驻留程序,要求在屏幕的右上角显示计算机中当前系统时间,显示格式为时:分:秒:1/
3、100秒(4)、输入一个菱形的两条对角线长,在屏幕上用*号画出一个彩色的菱形。(5)、设置图形方式并显示彩条,要求: 选择背风光为蓝色,调色板为0,然后每行显示一种颜色,每四行重复一次,一直到整个屏幕都显示出彩条2设计要求:掌握构造化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经历。1、设计正确,方案合理。2、界面友好,使用方便。3、程序精炼,构造清晰。4、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。5、上机演示。6、按*顺序选课题号,并在规定的时间内单独完成相关课题的汇编源程序编-. z.写、调整
4、和运行。源程序及编译生成各文件均保存在软盘中; 7、按本任务书的要求,按附录的要求编写课程设计报告Word文档格式。并用A4的复印纸打印并装订; 二、进度安排第 18 周: 星期1 下午2:00-5:30 星期2 下午2:00-5:30 星期4 下午2:00-5:30 附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件A4大小的图纸及程序清单。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分要求画出模块图;三、主要功能的实现至少要有一个主要模块的流程图;四、程序调试;五、总结;六、附件所
5、有程序的原代码,要求对程序写出必要的注释。正文总字数要求在5000字以上不含程序原代码。-. z.目录TOC o 1-3 h u HYPERLINK l _Toc14230 课题一:画出一个彩色的菱形 PAGEREF _Toc14230 1 HYPERLINK l _Toc28013 一、 课题的主要功能 PAGEREF _Toc28013 1 HYPERLINK l _Toc27667 二、 课题的功能模块的划分 PAGEREF _Toc27667 2 HYPERLINK l _Toc12885 三、 主要功能的实现 PAGEREF _Toc12885 4 HYPERLINK l _Toc2
6、8894 四、 程序调试 PAGEREF _Toc28894 5 HYPERLINK l _Toc14724 五、 总结 PAGEREF _Toc14724 6 HYPERLINK l _Toc27205 课题二:显示计算机中当前系统时间 PAGEREF _Toc27205 7 HYPERLINK l _Toc12697 一、 课题的主要功能 PAGEREF _Toc12697 7 HYPERLINK l _Toc8644 二、 课题的功能模块的划分 PAGEREF _Toc8644 7 HYPERLINK l _Toc26013 三、 主要功能的实现 PAGEREF _Toc26013 9
7、HYPERLINK l _Toc25232 四、 程序调试 PAGEREF _Toc25232 10 HYPERLINK l _Toc5666 五、 总结 PAGEREF _Toc5666 11 HYPERLINK l _Toc600 附件(源代码) PAGEREF _Toc600 12 HYPERLINK l _Toc22113 1. 画出一个彩色的菱形 PAGEREF _Toc22113 12 HYPERLINK l _Toc18425 2.显示计算机中当前系统时间 PAGEREF _Toc18425 17-. z.课题一:画出一个彩色的菱形课题的主要功能输入一个菱形的两条对角线长,在屏幕
8、上用*号画出一个彩色的菱形。程序运行时会有提示要求用户输入菱形的对角线长。在界面上用户须分别输入菱形的横向和竖向对角线长。程序会跟据输入的对角线长度计算出菱形所在的一个矩形区域设置双重循环的参数,然后以0,0为原点横向为*轴,竖向为Y轴,建立坐标系。先确定菱形的左顶点坐标为0,10,然后根据对角线长计算下顶点的坐标L/2,10+W/2,再将菱形分成四个区域,在左下角的区域内判断要显示的*,再根据对称的关系将其他三个区域填满。左下角区域的判断是根据那两个点的坐标建立的一次不等式,满足条件的显示。用BIOS的02H功能来设置光标位置,用09H功能来设置光标的位置显示字符及其属性,属性即为显示字符的
9、颜色,每显示一个颜色就换一种。课题的功能模块的划分 输入对角线长 计算参数 设置光标位置 判断是否满足条件 显示图形 完毕图1系统功能模块本课题共分为五个模块,即输入对角线模块,计算参数模块,设置光标模块,判断模块,显示图形模块。输入模块: MOV AH,01H INT 21H 分为四个字符输入,第一,二个字符为横向长L,先将第一个字符转化为数值 SUB AL,30H MUL N 两位数,再加上第二个字符的数值个位数变为一个两位数,第二个两位数同理得竖向长W。计算参数模块:本程序包括A,B,E,*,Y,I,OLD,NEI,WAI参数需要计算,A=W/2,B=L/2,E=B,*=DL,Y=DH,
10、I控制字符颜色0-7循环,LEA OLD,ATRI,NEI=B+1,WAI=A+1。设置光标模块:将光标移至0,10+A,并从这点,逐行遍历完左下角的矩形区域。其他三个区域根据对称的关系移动。判断模块:根据D*中的内容取出*=DL,Y=DH,代入不等式BY=A*+10,满足条件的点就显示出来。显示图形模块:假设此点满足条件就显示出来,每显示一次颜色就变一次,然后将光标移至其他三个区域对称的点显示,其他三个区域的坐标为2E-*,Y 2E-*,20-Y *,20-Y。主要功能的实现本程序主要功能是两层循环中的判断和显示局部 PUSH C* MOV C*,NEI PUSH C*设置光标位置 获得*,
11、Y BY=A*+10 N Y 在此点显示*,颜色属性改变 其他三个对称区域显示*,颜色属性改变 POP C* INC DL DEC C* C*=0 NDEC DH MOV DL,0POP C* DEC C* Y C*=0N 完毕Y 图2 判断和显示流程图程序调试1.输入横向长度和竖向长度 图 3 彩色菱形2.输入横向长度和竖向长度 图4 彩色菱形总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程。通过几天的课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相
12、结合起来,从理论中得出结论。在设计的过程中遇到问题,可以说得是困难重重,所以在设计的过程中发现了自己的缺乏之处,对一些前面学过的知识理解得不够深刻,掌握得不够结实,通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。在课程设计过程中,收获知识,提高能力,懂得怎么样去制定方案,怎么样去实现这个方案。不畏困难,勇往直前!课题二:显示计算机中当前系统时间课题的主要功能 本课题的主要功能是利用INT 1CH大约每秒中断18.2次编写一个中断驻留程序,要求在屏幕的右上角显示计算机中当前系统时间,显示格式为时:分:秒:1/100秒完成该课题的系统时间功能,需要不断地同步显示当前系统时间,这里我们
13、需要用到INT 1CH,平均每秒中断18.2次,以这样的频率同步显示系统时间以满足人们的视觉效果。完成系统时间同步的前提下还要读取系统时间和显示系统时间。课题的功能模块的划分 2.1 功能模块解释 课题的功能模板就是在定义好数据之后,完成读取当前系统时间和显示当前系统时间两大模块。包括获取原终端类型、保存原中断类型、设置新的中断类型、执行中断处理程序、应用堆栈保护现场、读取系统时间,然后分别将时间的BCD码转换为字符,在制定内存位置写入时间然后显示时间,最后恢复现场,中断返回。 该课题采用了调用子程序的思想来完成,主体功能都通过子程序来完成,中断模块、读取系统时间模块、显示系统模块、现场保护模
14、块及现场恢复模块。通过调用子程序的方法使本程序更加具有条理性,其中现场保护是为了使存放器中有用的数据保存起来,让存放器进展其他运算,现场恢复是使原来保存起来的有用的数据进展恢复,读取系统当前时间并使屏幕显示的时间与系统当前时间同步变化,这就不得不使用中断模块,运用INT 1CH,可以每秒中断18.2次,足以满足视觉上的同步。2.2 功能模块流程图 主程序显示当前系统时间 子程序模块中断模块显示当前系统时间读取系统当前时间现场恢复及保护模块图1 功能模块流程图主要功能的实现系统时间功能调用 实现获取当前系统时间并显示当前系统时间。 步骤一:定好数据之后,在DOS环境下,用2C号取系统时间的功能,
15、将时赋值给CH,将分赋值给CL,将秒赋值给DH,将1/100赋值给DL。系统时间显示 子函数INT 1C来具体实现当前系统时间,将从系统中读取的时、分、秒分别送入内存T到T7,然后块装入指令把SI指向的存储单元读入累加器。 保护现场 开 始 读取系统时间获取原中断类型1CH 分别将时间的BCD码转换为字符 保存原中断类型在指定的位置写入时间并显示时间设置新的中断类型 恢复现场执行中断处理程序 中断返回 图2 时间显示流程图程序调试程序运行显示当前系统时间总结本文的主要内容是介绍用汇编语言8086/DOS实现一个显示系统时间的程序,在界显示系统时间,在设计过程中,首先是按照题目所给的具体要求,根
16、据自己的设计思路,画出流程图,然后查阅相关资料,写出流程图中的各段子程序,把子程序放在MasmforWindows集成环境中进展调试,找出程序中的错误,并进展修改和不断完善,以得到符合要求的程序。有了这些子程序后,我们就可以根据要求写出源程序,但在写源程序的过程中遇到了很多困难,经过反复调试跟修改,最终得到了符合要求的源程序。一周的汇编语言课程设计完毕了,我的收获很大。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的缺乏。通过这次课程设计,我稳固所了学过的知识,能用汇编语言熟练地运用顺序、选择、循环三大构造,进一步掌握了各
17、个指令的功能,特别是转向指令,掌握了子程序的定义及调用,以及正确地运用DEBUG指令。在整个程序的编写中,调试占了很大局部的时间。要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了汇编语言的构造和使用方法,根本到达了能独立阅读、编制和调试一定规模的汇编语言程序的水平。另外,就是我对这门课内容的学习感受。要学好这门课,以我愚见无非有以下三点:1 课本上应该记住的东西一定要记住,记不住就没法做题,例如指令,寻址方式等等假设记住你做题就会做,看程序也就能看懂,记不住见了它就会对它不知所措,一脸茫
18、然。2)预习很重要,这一点不仅适用于这一科的学习,确切的说它适用于任何一科,有的同学这一点作的不好,上课只知道竖着两个耳朵傻傻的听教师讲课,也不注意动动脑子随时思考,延续以前填鸭式的学习方式,想让教师讲给所有的东西,殊不知很多东西还要自己从书本获得。这就难免出现听不懂的情况,这好比让一个不懂外语的人听外语录音,在他的心里,听外语就像听天书一般,所以说你要学一点新东西,前提是你对它要有一点了解,不然的话你所作的一切只不过是在浪费时间,浪费金钱,浪费生命。3理论与实践相结合,不懂的地方应勤问教师勤问同学,直到把它搞懂为止。 总之,这学期的课程设计,让我们学到了很多,受益匪浅。附件(源代码)画出一个
19、彩色的菱形DATAS SEGMENT;此处输入数据段代码 ATRI DB 0AH,0BH,0CH,09H,0DH,08H,0EH L DW W DW N DB 10 A DB B DB E DB D DB * DB Y DB I DB 0 OLD DW NEI DW WAI DWDATAS ENDSSTACKS SEGMENT PARA STACK STACK;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV A*,DATASMOV DS,A*MOV AH,0MOV AL,3 INT 10H
20、MOV AH,01H INT 21HPUSH B*SUB AL,30HMUL NMOV L,A*MOV AH,01H INT 21HSUB AL,30HMOV C*,L MOV AH,0ADD C*,A*MOV L,C*MOV AH,01H ;空格 INT 21HMOV AH,01H ;宽 INT 21HSUB AL,30HMUL NMOV W,A*MOV AH,01H INT 21HSUB AL,30HMOV B*,W MOV AH,0ADD B*,A*MOV W,B*LEA SI,ATRIMOV OLD,SI MOV BL,2MOV A*,WDIV BLMOV A,AL ;AMOV A*,
21、LDIV BLMOV E,ALMOV B,AL ;BMOV BL,EMOV AL,2MUL BLMOV E,ALMOV BL,2MOV A*,WDIV BLINC AL MOV AH,0 ; MOV WAI,A* ;外循环MOV BL,2MOV A*,LDIV BL INC ALMOV AH,0MOV NEI,A* ;光标位置; MOV BL,2MOV A*,WDIV BLADD AL,10MOV DH,ALMOV DL,0;POP B*MOV AH,02H INT 10HMOV C*,WAILOOP1: PUSH C* ;外循环MOV C*,NEI ;内循环C*;LOOP2:PUSH B*P
22、USH C* ;内循环MOV AH,02H INT 10H MOV *,DL ;*坐标MOV Y,DH ;Y坐标MOV AL,BMUL YMOV B*,A* ;不等式左边B*MOV AL,AMUL *MOV C*,A*MOV AL,10MUL BADD C*,A* ;不等式右边C*CMP B*,C* JA NE*T ;显示程序MOV A*,092AHMOV BL,SI ;SI为颜色值MOV C*,1 INT 10HMOV BL,*MOV BH,0PUSH D* PUSH B*MOV AL,ESUB AL,*MOV DL,AL ;1_*MOV AH,02H INT 10HMOV A*,092AH
23、MOV BL,SI ;SI为颜色值MOV C*,1 INT 10H ;显示1号点MOV AL,20SUB AL,YMOV DH,AL ;2_YMOV AH,02H INT 10HMOV A*,092AHMOV BL,SI ;SI为颜色值MOV C*,1 INT 10H ;显示2号点POP B*MOV DL,BLMOV AH,02H INT 10HMOV A*,092AHMOV BL,SI ;SI为颜色值MOV C*,1 INT 10H ;显示3号点;INC IINC SICMP I,7 JNE BLAG4MOV I,0MOV SI,OLD BLAG4:;POP D* NE*T: ;不显示跳的这
24、POP C*POP B* INC DL DEC C* JNZ LOOP2 ;内循环完毕DEC DHMOV DL,0POP C*DEC C* JNZ LOOP1 ;外循环完毕MOV D*,1310HMOV AH,02H INT 10H MOV AH,4CH INT 21HCODES ENDSENDSTART2.显示计算机中当前系统时间DATAS SEGMENT cursor equ 45h attrib equ 2fh;此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DAT
25、AS,SS:STACKSSTART:MOV A*,DATASMOV DS,A* jmp go oldcur dw old1c dw 2 dup() newint1c:pushf call dword ptr cs:old1cpush a*push b*push c*push d*or bh,bhmov ah,3 int 10hmov cs:oldcur,d*mov ah,2*or bh,bhmov d*,012FH int 10hmov ah,2ch int 21h;ch=hour;cl=minute;dh=second;dl=1/100 second;push d*push c*;show
26、hourpop b*push b* call showhour call showcolon;show minutepop b* call showmin call showcolon;show secondpop b*push b* call showsec call showcolon;show 10 msecpop b* call showminmov d*,cs:oldcurmov ah,2*or bh,bh int 10hpop d*pop c*pop b*pop a* iret showhour proc nearpush b*pop a*mov cl,8shr a*,clmov bl,10div bladd al,30h call show call curmovemov cl,8shr a*,cladd al,30h call show call curmove ret showhour endp showmin proc nearpush b*pop a*mov cl,8shl a*,clshr a*,clmov bl,10div bladd al,30h call show call curmovemo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旅游发展营销方案(3篇)
- 消毒锅的应急预案(3篇)
- 山坡输送混凝土施工方案(3篇)
- 缆绳故障预警系统构建
- 移动社交平台用户粘性
- 江苏省重点商标保护名录管理规范(征求意见稿)
- 深圳银行柜面操作风险管理:挑战、策略与实践
- 淮河中上游地区新石器时代中晚期文化互动交流:历史脉络与文明演进
- 淀粉基炭材料及膜材料:制备工艺与性能特征的深度剖析
- 液氮半溶浸煤致裂增透特性及机理深度剖析
- 2022风电场工程电气设计规范
- 工程项目项目经理执行决策参考表
- 2025年攀岩二级裁判试题及答案
- 助产技术操作规范及考核评分标准
- (2021-2025)五年高考语文真题分类汇编专题11 名句名篇默写(情境式默写)(全国)(解析版)
- 2025秋季安徽合肥市建投集团招聘20人笔试备考题库及答案解析
- 风场升压站围墙施工方案
- 防监狱火灾课件
- 油烟净化设备维护方案(3篇)
- 高校图书馆员师德师风心得体会
- 2025年G1工业锅炉司炉试题及答案(1000题)
评论
0/150
提交评论