1、目录目录一、概述.二、题目基本内容.三、系统功能结构框图.四、系统流程框图.五、源程序代码.六、使用说明.七、程序调试.八、心得体会.九、参考文献.汇编语言课程设计报告2一、 概述:题目名称:实现在屏幕 10 行,20-24 列处显示 5 朵梅花题目的意义:汇编语言课程设计是对所学课程内容全面、系统的总结、巩固和提高的一项课程实践活动。根据汇编语言的特点,选择相应的题目,在老师的指导下,由学生独立完成。课程设计要求同学们熟悉汇编语言的编程,BIOS 中断调用、系统功能调用、磁盘数据的查询、存取等相关知识。通过课程设计,一方面提高运用汇编语言编程解决实际问题的能力,另一方面使同学们更深入的了解计
2、算机系统内部的有关知识,为以后的学习和系统开发奠定良好的基础。 本人所做的工作:找出相关程序源代码,弄清楚各功能的环节间的联系、联接方法。依照基本的算法思想写程序,测试,更正,扩充功能,修饰细节。用所学的汇编语言知识编写一个能实现在屏幕 10 行,20-24 列处显示 5 朵梅花,颜色各异且要求中间一朵能闪烁功能的汇编程序。系统的主要功能:实现在屏幕 10 行,20-24 列处显示 5 朵梅花,颜色各异且要求中间一朵能闪烁功能的汇编程序。二、题目的基本内容:Mov ah.0 ;设置 80*25 彩色文本方式Lea si,ATRI ;属性字节值表首地址存 SIMOV DI,5 ;显示 5 个字符
3、Mov dx,0a13h ;显示位置Mov ah,15 ;取当前页号LP: MOV AH,2 ;置光标位置MOV AL,5 ;显示梅花型字符INC SI ;指向下一属性字节DEC DI ;判显示完否汇编语言课程设计报告3JNZ LP ;未完转 LP 再显示MOV AH,4CH ;程序结束返回 DOS三、系统功能结构图:Data segmentATRI DB 6EH,52H,94H,52H,6EHData ends数据段部分Stack segment Para stack stackDW 200 DUP(0)Stack ends堆栈段部分LP: MOV AH,2 ;置光标位置INC DLINT
4、10HMOV AL,5 ;显示梅花型字符MOV BL,SIMOV CX,1MOV AH,9INT 10HINC SI ;指向下一属性字节DEC DI ;判显示完否;循环显示部分Code segmentAssume cs:code,ds:data,ss:stackINT 21HCode endsEnd start;代码段部分汇编语言课程设计报告4四、系统流程框图:Lea si,ATRI ;属性字节值表首地址存 SI开始SI=0?SI0?Mov al,5 显示梅花字符JNZ LP ;未完转 LP 再显示结束INC SI 指向下一属性字节DEC DI ;判显示完否(SI)+1-(SI)五、源程序代码
5、:Data segmentATRI DB 6EH,52H,94H,52H,6EHData endsStack segment Para stack stack汇编语言课程设计报告5DW 200 DUP(0)Stack endsCode segmentAssume cs:code,ds:data,ss:stackStart: mov ax,dataMov ds,axMov ah.0 ;设置 80*25 彩色文本方式Mov al,3INT 10hLea si,ATRI ;属性字节值表首地址存 SIMOV DI,5 ;显示 5 个字符Mov dx,0a13h ;显示位置Mov ah,15 ;取当前页
6、号INT 10HLP: MOV AH,2 ;置光标位置INC DLINT 10HMOV AL,5 ;显示梅花型字符MOV BL,SIMOV CX,1MOV AH,9INT 10HINC SI ;指向下一属性字节DEC DI ;判显示完否汇编语言课程设计报告6JNZ LP ;未完转 LP 再显示MOV AH,4CH ;程序结束返回 DOSINT 21HCode endsEnd start六、使用说明:1、本程序可以在 286 或更高处理器以上平台正常运行。2、使用方法;在 MS-DOS 环境下输入 meihua.exe 即可进入程序界面,进入界面后然后根据需要进行相应的操作。七、程序调试:1、问
7、题:在调试过程完成后,程序通过汇编、连接、执行后显示出的不是所要求的输出的梅花字符,而是显示的矩形字符。2、解决:通过检查后发现是语句“MOV AL,2” 错误,应该把 5 这个值传送给AL 寄存器。程序重新编辑后,调试成功,程序运行正常,问题解决。八、心得体会:经过一周的磨炼和努力,在各位老师的耐心指导和同学的热情帮助下,无论从学习上还是从自身角度,我自认都提高的非常迅速,发现了自己的能力和未被挖掘的潜力,认证了自身的坚强与韧力,总结出只有在强压与竞争中才会有意想不到的收获和进步。这次汇编课程设计为我们提供了与众不同的学习方法和学习机会,让我们从传统的被动授学转变为主动求学;从死记硬背的模式
8、中脱离出来,转变为在实践中学习,增强了领悟、创新和推断的能力。掌握自学的方法,形成工程理论整体模式,使工作、学习、生活都步入系统化流程;思考方式成熟,逻辑性规范、明确。这些方法的提高是终身受益的,我认为这难得的一周,让我真正懂得了生活和学习的基本规律。汇编是低级语言,也就是说对一个人的编程思想要求很高。或者应该说,编汇编的时候,不应该有感性,应该用完全的理性思维来思考。汇编很麻烦,本来可以用的资源就少,某些指令只能用某些寄存器,而且指令也不多,也不方便。所以怎么能尽量少的用寄存器,怎么能充分利用每一份资源,就成了程汇编语言课程设计报告7序员的首要问题。建议在编程前一定要想好,什么东西怎么用,最
9、好拿笔写下来,有些算法,选对了会简单一点,但是选错了就会成为灾难。比如排序,算法很多,哪个好写?哪个速度快?最好在编程序前就想明白。我习惯于一边编,一边想,但是编汇编的时候,这只不过是个灾难,不过就是让程序规模扩大几个数量级,同时速度降低几个数量级而已。紧张忙碌的课程设计虽然在历经一个周的时间后结束了,完成了课程设计的任务,但是从中发现的问题也是值得去深思的。我想经过这一个周的课程设计所发现的问题对我们会有很大的启示,在以后的学习中也会大有帮助。在以后的学习中我会不断的改进学习方法,在实践中学习,不断提高自我,完美自我,全面提高自己。九、参考文献:参考资料1沈美明、温冬蝉编:“IBM-PC 汇编语言程序设计 第 2 版” ,清华大学出版社,2001。2沈美明、温冬蝉编:“IBM-PC 汇编语言程序设计例题习题集” ,清华大学出版社,1991。3陆忠华等编:“汇编语言程序设计”科学出版社,1993。4迟成文、王保秀编:“汇编语言程序设计” ,中国科学技术大学出版社,1993。