用汇编语言实现闪烁文字.docx

上传人:b****3 文档编号:6817784 上传时间:2023-05-10 格式:DOCX 页数:16 大小:132.64KB
下载 相关 举报
用汇编语言实现闪烁文字.docx_第1页
第1页 / 共16页
用汇编语言实现闪烁文字.docx_第2页
第2页 / 共16页
用汇编语言实现闪烁文字.docx_第3页
第3页 / 共16页
用汇编语言实现闪烁文字.docx_第4页
第4页 / 共16页
用汇编语言实现闪烁文字.docx_第5页
第5页 / 共16页
用汇编语言实现闪烁文字.docx_第6页
第6页 / 共16页
用汇编语言实现闪烁文字.docx_第7页
第7页 / 共16页
用汇编语言实现闪烁文字.docx_第8页
第8页 / 共16页
用汇编语言实现闪烁文字.docx_第9页
第9页 / 共16页
用汇编语言实现闪烁文字.docx_第10页
第10页 / 共16页
用汇编语言实现闪烁文字.docx_第11页
第11页 / 共16页
用汇编语言实现闪烁文字.docx_第12页
第12页 / 共16页
用汇编语言实现闪烁文字.docx_第13页
第13页 / 共16页
用汇编语言实现闪烁文字.docx_第14页
第14页 / 共16页
用汇编语言实现闪烁文字.docx_第15页
第15页 / 共16页
用汇编语言实现闪烁文字.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

用汇编语言实现闪烁文字.docx

《用汇编语言实现闪烁文字.docx》由会员分享,可在线阅读,更多相关《用汇编语言实现闪烁文字.docx(16页珍藏版)》请在冰点文库上搜索。

用汇编语言实现闪烁文字.docx

用汇编语言实现闪烁文字

1.设计任务

用汇编语言实现闪烁文字的效果

2.原理

2.1题目功能分析

〔1〕屏幕提示输入字符串;

〔2〕输入完成后,字符动画显示颜色变化;

〔3〕单击“Q〞或“q〞键退出程序。

2.2算法说明

〔1〕屏幕提示输入字符串主要运用中断INT21H的0AH功能;

〔2〕颜色变化那么通过INT10H的09H功能循环调用实现;

〔3〕退出功能通过将输入‘Q’和‘q’与其ASCII比拟,跳转到退出程序;而退出程序主要通过INT21H的4CH功能实现。

 

2.3.流程图

NN

Y

图1

字符串闪烁流程图

3.程序说明

3.1提示输入字符串显示功能实现

屏幕提示输入字符串主要运用中断INT21H的0AH功能,输入后回车那么完成字符串在特定位置的显示。

leadx,buf

movah,0ah

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

movah,2

movbh,0

int10h;

leadx,buff2

movah,9

int21h;

subcx,1;

jnzAG;

3.2颜色变化功能实现

颜色变化功能实现相当于对字符串属性定义,表现出颜色差异,然后循环调用并插入延时。

以下程序效果是三种颜色闪烁,其中aaa1表示白色,aaa2表示黑色,aaa3表示绿色,aaa4表示红色,aaa5表示紫色。

往复调用彩色和黑色,在各种颜色变换之间插入黑色即可实现彩色连续闪烁的效果。

具体程序如下:

shanshuo:

;

callaaa1;white

calldelay1

callaaa2;black

calldelay1

callaaa3;white

calldelay1

callaaa2;black

calldelay1

callaaa4;white

calldelay1

callaaa2;black

calldelay1

callaaa5;white

calldelay1

callaaa2;black

calldelay1

MOVAH,08h;Q,q键退出

INT21H

cmpAL,'Q'

jeexit

cmpAL,'q'

jeexit

jmpshanshuo

3.3退出功能实现

退出功能通过将输入‘Q’和‘q’与其ASCII比拟,跳转到退出程序;

movah,08h;q键退出

int21H

cmpAL,'Q'

jeexit

cmpAL,'q'

jeexit

exit:

movah,4ch

int21h

3.4完整程序

datasegment

buff1db'$'

buff2db'$'

bufdb100dup('$')

buff3db'pleaseinputastring!

',13,10,'$'

buff4db'PressQorqtoexit!

',13,10,'$'

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

leadx,buff3;显示提示信息

movah,09h

int21h

leadx,buff4;显示提示信息

movah,09h

int21h

leadx,buf

movah,0ah

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;

jmpshansuo

shansuo:

;

callaaa1;white

calldelay1

callaaa2;black

calldelay1

callaaa3;white

calldelay1

callaaa2;black

calldelay1

callaaa4;white

calldelay1

callaaa2;black

calldelay1

callaaa5;white

calldelay1

callaaa2;black

calldelay1

MOVAH,08h;q键退出

INT21H

cmpAL,'Q'

jeexit

cmpAL,'q'

jeexit

mpshansuo

exit:

movah,4ch

int21h

aaa1procnear;white

MOVSI,OFFSETbuff1

movdi,0

movdl,20

aa1:

movdh,8;dhhangdllie;行列

incdl

movah,2

int10h;置光标位置

movah,09;9号功能

incdi

moval,[si]

incsi

movbh,0;显示页

movbl,07h;color

movcx,01;字符重复一次

int10h

cmpdi,0ch

aa1

ret

aaa1endp

aaa2procnear;black

MOVSI,OFFSETbuff1

movdi,0

movdl,20

aa2:

movdh,8;dhhangdllie

incdl

movah,2

int10h;置光标位置

movah,09;9号功能

incdi

moval,[si]

incsi

movbh,0;显示页

movbl,00h;color

movcx,01;字符重复一次

int10h

cmpdi,0ch

aa2

ret

aaa2endp

aaa3procnear;green

MOVSI,OFFSETbuff1

movdi,0

movdl,20

aa3:

movdh,8;dhhangdllie

incdl

movah,2

int10h;置光标位置

movah,09;9号功能

incdi

moval,[si]

incsi

movbh,0;显示页

movbl,02h;color

movcx,01;字符重复一次

int10h

cmpdi,0ch

aa3

ret

aaa3endp;颜色闪烁

aaa4procnear;red

MOVSI,OFFSETbuff1

movdi,0

movdl,20

aa4:

movdh,8;dhhangdllie

incdl

movah,2

int10h;置光标位置

movah,09;9号功能

incdi

moval,[si]

incsi

movbh,0;显示页

movbl,0ch;color

movcx,01;字符重复一次

int10h

cmpdi,0ch

aa4

ret

aaa4endp;颜色闪烁

aaa5procnear;prople

MOVSI,OFFSETbuff1

movdi,0

movdl,20

aa5:

movdh,8;dhhangdllie

incdl

movah,2

int10h;置光标位置

movah,09;9号功能

incdi

moval,[si]

incsi

movbh,0;显示页

movbl,0dh;color

movcx,01;字符重复一次

int10h

cmpdi,0ch

aa5

ret

aaa5endp;颜色闪烁

delay1procnear

pushcx

pushbx

movbx,1fffh

wait4:

movcx,0ffffh

wait5:

loopwait5

decbx

jnzwait4

popbx

popcx

ret

delay1endp

delay2procnear

pushcx

pushbx

movbx,0ffh

wait2:

movcx,0ffffh

wait3:

loopwait3

decbx

jnzwait2

popbx

popcx

ret

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

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2