霓虹灯显示程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引言
我们知道汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言,汇编语言对于硬件的控制具有独特的优势。一方面,汇编语言指令是用一些具有相应含义的助忆符来表达的,所以,它要比机器语言容易掌握和运用,但另一方面,它要直接使用CPU的资源,相对高级程序设计语言来说,它又显得难掌握。
霓虹灯是日常生活中常见的灯饰,它装点了夜空,丰富了人们的生活,让夜间的城市更加美丽。通过汇编语言的学习,我们通过汇编语言,可实现霓虹灯的控制与操作,实现其显示与闪烁,或者是其他的动态变化,从而可以很方便的达到理想效果。INT 10H 是由BIOS 对屏幕及显示器所提供的服务程序,汇编语言的INT 10号中断提供了设置显示模式、设置颜色模式、设置光标位置、按指定属性显示字符等功能,可以显示汉字或图像,同时也提供了初始化屏幕或滚屏等功能号,通过擦除子程序以及清屏子程序的配合运用,可以达到让汉字或图像闪烁或运动的功能。而文字的显示我们又可以通过取模软件轻松获得,这使得整个编译过程轻松了很多,同时可以让文字或图标的显示更加规范和多样化,达到霓虹灯多样变化的目的。
本次课程设计,研究的正是霓虹灯显示程序设计,我们可通过对INT 10号中断的功能调用实现,设计出我们想要的霓虹灯显示效果。在整个设计过程,我们可以加强对课本知识的巩固,并借此拓展自己的知识面。
关键词:汇编语言霓虹灯中断字符运行调试
1设计要求及分析
1.1设计要求
1)用汇编语言编写一个霓虹灯的模拟显示程序;
2)在屏幕上显示你的中文名字或其它文字,按某种规律闪烁变化,按“q”键退出;
3)撰写课程设计说明书。内容包括:摘要、目录、正文、参考文献、附录(程序清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。
1.2设计分析
分析任务书要求可知:本次程序设计尽量在屏幕上显示自己的名字,也可以显示其他的文字。文字要按某种方式闪烁,闪烁方式不限定于一种,也可以多种。程序运行过程中,有Q或q输入,则程序结束;无字符输入或输入字符不是Q、q,则程序照常运行。本次课程设计中,我觉得显示自己的姓名更有意义。在字体的选择上,为了更加美观,我选择了楷体,这意味着写程序时会有大量单调重复的工作。程序通过INT 10H2号功能的调用置光标位置,3号功能的调用读光标的位置,以及13号功能的调用显示字符串等等一系列功能,再加上顺序、循环结构程序的调用进行图形的霓虹灯效果显示。
2 程序流程图
2.1程序设计思路
开始→数据段初始化→判断键盘输入的字符,只有当输入的为密码Z时,才开始显示开场白,姓名,感谢语等,若不是Z,则继续等待密码Z的输入→调用字符显示程序,依次显示Hello,my name is ZhengChang!Here is my work!郑畅(楷体大字)Thanks for your watching!→调用竖条纹显示程序,显示运动的空格,进行清屏→判断是否有字符q或Q输入,没有的话,重复调用字符显示程序;有字符q或Q输入时,退出程序→结束
主程序流程图如图1所示:
图1主程序流程图
2.2子程序流程图
2.2.1汉字显示子程序流程图
图2 汉字显示子程序流程图
2.2.2竖形条纹显示子程序
图3 竖形条纹显示子程序
2.2.3擦除子程序如图4
图4 擦除子程序
3 DOS功能调用
3.1彩色字符显示
本次设计实现的是霓虹灯的模拟显示,在80*25大小的屏幕上显示由各种字符组成的不同图形,在屏幕上,0行0列相对于屏幕左上角的位置,24行79列相对于右下角的位置。
对应显示屏幕上的每个字符,在存储器中又连续的两个字节表示,一个字节保存ASCII码,另一个字节保存字符的属性。在屏幕上处理字母、数字以及一些字符图形称为文本方式。在文本方式下,属性字节对单色显示和彩色显示都是有效的。
本程序采用的是彩色字符显示,在显示彩色文本时,属性字节能够选择前景和背景的颜色。每个字符可以选择16种颜色中的一种,背景色有8种颜色可以选择。表1是16色文本方式显示的属性字节。表2列出了16色字符方式颜色的组合。
表1 属性字节定义
7 6 5 4 3 2 1 0
闪烁位背景色亮度色前景色(1)第7位用来控制闪烁。其值为0表示不闪烁,为1表示闪烁
(2)第4、5和6位决定背景(显示屏幕)的颜色。
(3)第3位用来控制亮度。其值为0表示不正常显示,为1表示高亮度显示。(4)第0、1和2位决定了前景(显示字符)的颜色。
表2 16种颜色的组合
颜色IRGB 颜色IRGB 颜色IRGB 颜色IRGB 黑0000 灰1000 红0100 浅红1100 蓝0001 浅蓝1001 品红0101 浅品红1101 绿0010 浅绿1010 棕0110 黄1110 青0011 浅青1011 灰白0111 白1111 3.2功能调用
(1)02H号功能调用
功能:用文本坐标下设置光标位置
入口参数:AH=02H
BH=显示页码
DH=行(Y坐标)
DL=列(X坐标)
出口参数:无
(2)08H号功能调用
功能:读光标处的字符及其属性
入口参数:AH=08H
BH=显示页码
出口参数:AH=属性
AL=字符
(3)09H号功能调用
功能:在当前光标处按指定属性显示字符
入口参数:AH=09H
AL=字符
BH=显示页码
BL=属性(文本模式)或颜色(图形模式)
CX=重复输出字符的次数