用汇编语言实现闪烁文字_第1页
用汇编语言实现闪烁文字_第2页
用汇编语言实现闪烁文字_第3页
用汇编语言实现闪烁文字_第4页
用汇编语言实现闪烁文字_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. 设计任务 用汇编语言实现闪烁文字的效果2.原理2.1题目功能分析(1)屏幕提示输入字符串;(2)输入完成后,字符动画显示颜色变化;(3)单击“Q”或“q”键退出程序。2.2算法说明(1)屏幕提示输入字符串主要运用中断INT 21H的0A H功能;(2)颜色变化则通过INT 10H的09H功能循环调用实现;(3)退出功能通过将输入Q和q与其ASCII比较,跳转到退出程序;而退出程序主要通过INT 21H的4C H功能实现。 2.3.流程图 开始 获取字符 设置字符串颜色 设置起始位置 输出字符串 延迟次数已到?是否输出? 结束 N N Y 图1 字符串闪烁流程图3.程序说明3.1提示输入字

2、符串显示功能实现屏幕提示输入字符串主要运用中断INT 21H的0A H功能,输入后回车则完成字符串在特定位置的显示。 lea dx,buf mov ah,0ah int 21h mov bx,2 ; mov di,0B1: mov al,bufbx cmp al,13 ;是否是回车? je AG1 mov buff1di,al inc bx inc di jmp B1AG1: mov ah,0 mov al,2 int 10h;OTHER: mov cx,0ffffh;AG: mov dh,7 ;hang mov dl,35 ;lie mov ah,2 mov bh,0 ; int 10h ;

3、 lea dx,buff1 mov ah,9 int 21h ; mov dh,7 mov dl,35 mov ah,2 mov bh,0 int 10h ; lea dx,buff2 mov ah,9 int 21h; sub cx,1 ; jnz AG ;3.2颜色变化功能实现 颜色变化功能实现相当于对字符串属性定义,表现出颜色差别,然后循环调用并插入延时。以下程序效果是三种颜色闪烁,其中aaa1表示白色,aaa2表示黑色,aaa3表示绿色,aaa4表示红色,aaa5表示紫色。往复调用彩色和黑色,在各种颜色变换之间插入黑色即可实现彩色间断闪烁的效果。具体程序如下:shanshuo: ; c

4、all aaa1 ;white call delay1 call aaa2;black call delay1 call aaa3 ;white call delay1 call aaa2;black call delay1 call aaa4 ;white call delay1 call aaa2;black call delay1 call aaa5 ;white call delay1 call aaa2;black call delay1 MOV AH,08h;Q,q键退出 INT 21H cmp AL,'Q' je exit cmp AL,'q' j

5、e exit jmp shanshuo3.3退出功能实现 退出功能通过将输入Q和q与其ASCII比较,跳转到退出程序; mov ah,08h;q键退出 int 21H cmp AL,'Q' je exit cmp AL,'q'je exit exit: mov ah,4ch int 21h 3.4完整程序 data segment buff1 db ' $' buff2 db ' $' buf db 100 dup('$') buff3 db 'please input a string !',13

6、,10,'$' buff4 db 'Press Q or q to exit!',13,10,'$' data ends code segment assume cs:code,ds:datastart: mov ax,data mov ds,ax lea dx,buff3;显示提示信息 mov ah,09h int 21h lea dx,buff4;显示提示信息 mov ah,09h int 21h lea dx,buf mov ah,0ah int 21h mov bx,2 ;多字符输入,回车结束,有效内容自第三个始。 mov di,0B1:

7、 mov al,bufbx cmp al,13 ;是否是回车? je AG1 mov buff1di,al inc bx inc di jmp B1AG1: mov ah,0 mov al,2 int 10h;黑白文本OTHER: mov cx,0ffffh; jmp shansuo shansuo: ; call aaa1 ;white call delay1 call aaa2;black call delay1 call aaa3 ;white call delay1 call aaa2;black call delay1 call aaa4 ;white call delay1 cal

8、l aaa2;black call delay1 call aaa5 ;white call delay1 call aaa2;black call delay1 MOV AH,08h;q键退出 INT 21H cmp AL,'Q' je exit cmp AL,'q'je exit mp shansuoexit: mov ah,4ch int 21h aaa1 proc near ;white MOV SI,OFFSET buff1 mov di,0 mov dl,20aa1: mov dh,8 ;dh hang dl lie;行 列 inc dl mov a

9、h,2 int 10h ;置光标位置 mov ah,09 ;9号功能 inc di mov al,si inc si mov bh,0 ;显示页 mov bl,07h ;color mov cx,01 ;字符重复一次 int 10h cmp di,0ch jb aa1 retaaa1 endpaaa2 proc near ;blackMOV SI,OFFSET buff1mov di,0mov dl,20aa2: mov dh,8 ;dh hang dl lieinc dlmov ah,2int 10h ;置光标位置mov ah,09 ;9号功能inc dimov al,siinc simov

10、 bh,0 ;显示页mov bl,00h ;colormov cx,01 ;字符重复一次int 10hcmp di,0chjb aa2retaaa2 endpaaa3 proc near ;greenMOV SI,OFFSET buff1mov di,0mov dl,20aa3: mov dh,8 ;dh hang dl lieinc dlmov ah,2int 10h ;置光标位置mov ah,09 ;9号功能inc dimov al,siinc simov bh,0 ;显示页mov bl,02h ;colormov cx,01 ;字符重复一次int 10hcmp di,0chjb aa3r

11、etaaa3 endp ;颜色闪烁aaa4 proc near ;redMOV SI,OFFSET buff1mov di,0mov dl,20aa4: mov dh,8 ;dh hang dl lieinc dlmov ah,2int 10h ;置光标位置mov ah,09 ;9号功能inc dimov al,siinc simov bh,0 ;显示页mov bl,0ch ;colormov cx,01 ;字符重复一次int 10hcmp di,0chjb aa4retaaa4 endp ;颜色闪烁aaa5 proc near ;propleMOV SI,OFFSET buff1mov di

12、,0mov dl,20aa5: mov dh,8 ;dh hang dl lieinc dlmov ah,2int 10h ;置光标位置mov ah,09 ;9号功能inc dimov al,siinc simov bh,0 ;显示页mov bl,0dh ;colormov cx,01 ;字符重复一次int 10hcmp di,0chjb aa5retaaa5 endp ;颜色闪烁delay1 proc nearpush cxpush bxmov bx,1fffhwait4: mov cx,0ffffhwait5: loop wait5dec bxjnz wait4pop bxpop cxre

13、tdelay1 endpdelay2 proc nearpush cxpush bxmov bx,0ffhwait2: mov cx,0ffffhwait3: loop wait3dec bxjnz wait2pop bxpop cxretdelay2 endp ;字符串向右移动结束end:code endsend start4.程序运行结果4.1提示并输入字符串,按回车结束输入完没有按回车4.2彩色闪烁测试输入完成后,文字会按照“红-黑-紫-白-黑-绿-黑-红-黑-紫-黑”的顺序变换颜色,实现彩色闪烁。红色闪烁效果紫色闪烁效果白色闪烁效果绿色闪烁效果黑色闪烁效果5.心得体会微型计算机技术作为

14、我们的主要专业课之一, 虽然在大三开学初我对这门课并没有什么兴趣, 觉得那些程序枯燥乏味,对我们实际生活没什么用,但在这次课程设计后我改变了对这门课的想法。虽然只有短短的一个星期,但在这一个星期里收获颇多,通过做闪烁文字的课题,我更加深入的了解了这一个学期所学的微机技术这门课。巩固了课本上的知识同时也学会了很多课本上没有的。理论与实际相结合,将书本上的东西运用到实际生活当中,真正的做到了融会贯通。记得在一个星期前刚拿到这个课题的时候,感觉很难,毕竟是第一次接触这个设计,对汇编语言不熟悉,掌握的知识完全不能把这个课程设计做好,因此,在开始的几天都是上网找一些相关的知识,学一些相关的函数和功能,比如汇编语音对颜色的设置,以及颜色的切换。等等,平时在书本里学的都是一条条的指令,并没有真正做到理解,这次做课程设计通过老师和同学的帮助,真正理解了每条指令的含义,同时也知道了只有平时多看程序,多动手调试,才能真正学好这门课。通过这次课程设计使我对汇编语言有了更加深入的学习,通过几天的设计,我掌握了DOIS和BOIS各个功能调用的同时,还对子程序有了更深的理解。通过这次设计我还对计算机产生了浓厚的兴趣,在学到知识的同时也开阔了我的视野,真是收益匪浅。我也认识到了汇编语言的精妙,认识了它的重要性,汇编作为一种低级语言,与计算机硬件紧密相

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论