用汇编语言实现闪烁文字Word文档格式.docx
《用汇编语言实现闪烁文字Word文档格式.docx》由会员分享,可在线阅读,更多相关《用汇编语言实现闪烁文字Word文档格式.docx(16页珍藏版)》请在冰点文库上搜索。
int21h
movbx,2;
movdi,0
B1:
moval,buf[bx]
cmpal,13;
是否是回车?
jeAG1
movbuff1[di],al
incbx
incdi
jmpB1
AG1:
movah,0
moval,2
int10h;
OTHER:
movcx,0ffffh;
AG:
movdh,7;
hang
movdl,35;
lie
movah,2
movbh,0;
int10h;
leadx,buff1
movah,9
int21h;
movdh,7
movdl,35
movbh,0
leadx,buff2
int21h;
subcx,1;
jnzAG;
3.2颜色变化功能实现
颜色变化功能实现相当于对字符串属性定义,表现出颜色差异,然后循环调用并插入延时。
以下程序效果是三种颜色闪烁,其中aaa1表示白色,aaa2表示黑色,aaa3表示绿色,aaa4表示红色,aaa5表示紫色。
往复调用彩色和黑色,在各种颜色变换之间插入黑色即可实现彩色连续闪烁的效果。
具体程序如下:
shanshuo:
;
callaaa1;
white
calldelay1
callaaa2;
black
calldelay1
callaaa3;
callaaa4;
callaaa5;
MOVAH,08h;
Q,q键退出
INT21H
cmpAL,'
Q'
jeexit
q'
jeexit
jmpshanshuo
3.3退出功能实现
退出功能通过将输入‘Q’和‘q’与其ASCII比拟,跳转到退出程序;
movah,08h;
q键退出
int21H
jeexit
exit:
movah,4ch
int21h
3.4完整程序
datasegment
buff1db'
$'
buff2db'
bufdb100dup('
$'
)
buff3db'
pleaseinputastring!
'
13,10,'
buff4db'
PressQorqtoexit!
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
leadx,buff3;
显示提示信息
movah,09h
leadx,buff4;
int21h
leadx,buf
int21h
多字符输入,回车完毕,有效内容自第三个始。
cmpal,13;
jeAG1
movbuff1[di],al
黑白文本
jmpshansuo
shansuo:
mpshansuo
aaa1procnear;
MOVSI,OFFSETbuff1
movdl,20
aa1:
movdh,8;
dhhangdllie;
行列
incdl
置光标位置
movah,09;
9号功能
moval,[si]
incsi
显示页
movbl,07h;
color
movcx,01;
字符重复一次
int10h
cmpdi,0ch
aa1
ret
aaa1endp
aaa2procnear;
MOVSI,OFFSETbuff1
movdi,0
movdl,20
aa2:
movdh,8;
dhhangdllie
incdl
movah,2
int10h;
movah,09;
incdi
moval,[si]
incsi
movbh,0;
movbl,00h;
movcx,01;
int10h
cmpdi,0ch
aa2
ret
aaa2endp
aaa3procnear;
green
aa3:
movbl,02h;
aa3
aaa3endp;
颜色闪烁
aaa4procnear;
red
aa4:
movbl,0ch;
aa4
aaa4endp;
aaa5procnear;
prople
aa5:
movbl,0dh;
aa5
aaa5endp;
delay1procnear
pushcx
pushbx
movbx,1fffh
wait4:
movcx,0ffffh
wait5:
loopwait5
decbx
jnzwait4
popbx
popcx
delay1endp
delay2procnear
movbx,0ffh
wait2:
wait3:
loopwait3
jnzwait2
delay2endp;
字符串向右移动完毕
end:
codeends
endstart
4.程序运行结果
4.1提示并输入字符串,按回车完毕
输入完没有按回车
4.2彩色闪烁测试
输入完成后,文字会按照“红-黑-紫-白-黑-绿-黑-红-黑-紫-黑〞的顺序变换颜色,实现彩色闪烁。
红色闪烁效果
紫色闪烁效果
白色闪烁效果
绿色闪烁效果
黑色闪烁效果
5.心得体会
微型计算机技术作为我们的主要专业课之一,虽然在大三开学初我对这门课并没有什么兴趣,觉得那些程序枯燥乏味,对我们实际生活没什么用,但在这次课程设计后我改变了对这门课的想法。
虽然只有短短的一个星期,但在这一个星期里收获颇多,通过做闪烁文字的课题,我更加深入的了解了这一个学期所学的微机技术这门课。
稳固了课本上的知识同时也学会了很多课本上没有的。
理论与实际相结合,将书本上的东西运用到实际生活当中,真正的做到了融会贯穿。
记得在一个星期前刚拿到这个课题的时候,感觉很难,毕竟是第一次接触这个设计,对汇编语言不熟悉,掌握的知识完全不能把这个课程设计做好,因此,在开场的几天都是上网找一些相关的知识,学一些相关的函数和功能,比方汇编语音对颜色的设置,以及颜色的切换。
等等,平时在书本里学的都是一条条的指令,并没有真正做到理解,这次做课程设计通过教师和同学的帮助,真正理解了每条指令的含义,同时也知道了只有平时多看程序,多动手调试,才能真正学好这门课。
通过这次课程设计使我对汇编语言有了更加深入的学习,通过几天的设计,我掌握了DOIS和BOIS各个功能调用的同时,还对子程序有了更深的理解。
通过这次设计我还对计算机产生了浓厚的兴趣,在学到知识的同时也开阔了我的视野,真是收益匪浅。
我也认识到了汇编语言的精妙,认识了它的重要性,汇编作为一种低级语言,与计算机硬件严密相关,他能解决很多高级语言不能解决的问题,所以掌握汇编语言的设计是非常重要的!
6.参考文献
[1]彭虎等编著.微机原理与接口技术〔第二版〕.:
电子工业,2021
[2]沈美明,温东禅.IBM-PC汇编语句程序设计〔第2版〕.:
清华大学,2001
[3]任向明,卢惠林.汇编语言程序设计实用教程.:
清华大学,2021
[4]马力妮.80x86汇编语言程序设计.:
机械工业,2004
[5]艾德才.Pentium系列微型计算机原理与接口技术.:
高等教育,2000