字符图形程序的设计与实现Word文件下载.docx
- 文档编号:6198995
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:18
- 大小:238.97KB
字符图形程序的设计与实现Word文件下载.docx
《字符图形程序的设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《字符图形程序的设计与实现Word文件下载.docx(18页珍藏版)》请在冰点文库上搜索。
字符图形程序设计的重点在于加强学生对BIOS中断10的学习,了解该中断的相应功能,感受中断调用给汇编程序带来的方便。
通过编写汇编语言,实现字符图形的显示,让学生加深了对汇编程序理论课程的理解,更加了解汇编语言的应用,并且能够按要求编写程序,从而提高学生的汇编语言知识,更进一步地了解了汇编语言,通过本次设计,可以让学生深刻体会到中断调用的功能。
2设计:
2.1设计原理:
本程序是显示由多个字符组成的图形的程序,需要将多个字符定义在一个字符图形表里。
字符图形表包括每个字符的ASCⅡ码、属性以及在显示图形中的相对位移量(相对位移量是指前一个字符和当前要显示的字符之间的行距和列距)四个参数组成。
字符图形表中的第一个字节“89”是组成图形的字符数,编写程序需要将每个字符的ASCⅡ码和属性以及显示的位置放入相应的寄存器中,然后发出显示命令,当89个字符都显示出来后,我们就可以看到两个“字”的图形。
为了清晰地看到每一个字,需要延时,程序中编写了延时子程序。
此外,程序中还有清屏子程序和移动子程序,通过适当改变延时时间,甚至可以实现图形的移动。
2.2详细设计:
2.2.1模块层次图:
2.2.2各模块说明:
输入
功能为从键盘读字符。
调用参数AH=功能类型。
返回参数AL=输入字符的ASCII码,AH=输入字符的扫描码。
显示
功能在DOS文本方式显示字符。
使用DOS显示中断(INT10H),调用参数AH=功能类型,BH=显示的页号,AL=要显示的字符,BL=显示字符的属性(颜色等),CX=字符的重复次数。
无返回参数。
清屏
功能为清除屏幕内的内容。
调用参数AH=功能类型,AL=0初始化窗口,BH=卷入行属性,CH/CL=要清屏区域左上角的行/列号,DH/DL=要清屏区域右下角的行/列号。
2.3程序流程图:
2.4主要说明:
数据类型的定义和说明:
datasegment
array1db0,1,2,3,4,5,6,7,8,9
rowdb0
coldb0
colordb0fh
array2db'
pleasepayattention:
press"
ESC"
toexit&
press"
del"
toclearscreen'
'
$'
array3db'
CHARACTER:
'
array4db'
COLOR:
dataends
函数说明:
Start函数输入
数字表示的函数显示颜色
Up之类的函数改变方向
Draw函数开始画图
Reset函数重新画图
Clear函数清屏函数
3测试及评估:
3.1测试结果:
通过键盘输入0-9来画字符,通过输入←,↑,→,↓来控制画图光标,通过键盘输入a-i来控制显示字符的颜色,输入‘del’键来清除画图区域,输入“ESC”则退出,结果如下图:
其中,控制光标对应的扫描码为:
↑(48H)、←(4BH)、→(4DH)、↓(50)
进入masm:
运行文件:
Link文件:
运行.exe文件:
运行结果:
结果:
3.2程序的改进空间:
虽然我的程序基本满足了本次课程设计的要求,但其中依然有很多需要改进的地方。
比如我选择图形的显示模式是单字符显示方式,这比320*200的四色图形显示方式简单的多,降低了程序的要求,省掉了对屏幕色彩及调色板的设置。
同时,由于最后以Q(q)键结束程序,所以不需要延迟程序,因此在程序中将其省略。
但编写延迟子程序的方法和思想应该长期保存在自己的记忆中。
4心得体会:
为期一周的课程设计很快结束了,在设计的过程中,可谓既有喜又有忧,遇到了一些难题,也获得了很大的收获,做如下小结:
我的课程题目为:
字符图形程序的设计与实现,其中的一些相关知识在课上是老师没有讲过的,所以要先做好准备工作。
根据课程任务书的要求,阅读了相关的资料:
了解到了如何使用上下左右四个键,及其相应的扫描码的使用;
认识了DOS中断中各个寄存器的使用和含义;
理解了BIOS设置显示的方式;
及图形程序设计的方法。
在设计中也遇到了一些问题,像在进行界面设计的时候,设计区域边界和区域内布局比较难确定,设计不好就影响界面的美观;
编码过程中光标位置的重置容易忘记,是在调试过程中才发现出来的;
编码过长,内存占用比较多。
根据题目要求,我做了认真的分析,根据相应的要求先画流程图,这样可以有一个清晰的思路,在编写程序的过程中就避免因为头脑混乱而导致错误,同时也方便了程序的设计和编写。
因为遇到了这些问题,也带来了不少收获,在解决问题和请教同学的过程中,使我又有了新的认识和理解,并改正了自己在理解上的一些错误,使自己又得到了提高和进步。
我对汇编语言程序设计有了进一步的了解。
对于DOS中断和BIOS键盘中断、BIOS显示中断,也有了更深层次的了解,对于其功能调用有了一定的掌握。
这次实验还让我熟悉了分支程序、子程序设计的知识。
通过对图形程序设计的实现,也使我对汇编语言产生了更浓的兴趣。
今后在课余时间,可以多多阅读相关的书籍,来扩展自己的知识面。
在知道本次设计要实现什么功能后,目标还是很明确的。
在咨询老师的帮助下,以及在网上查看相关资料,这次课程设计做得比较顺利。
我们这组成员很团结,大家在一起交流了很多,正是我们大家的一起努力才可以顺利完成本次课程设计。
通过本次课程设计,我基本掌握了怎样运用汇编语言去设计字符图形,并制作出相应的流程图。
此外,加强了我对MASM软件的熟悉与使用。
另外,因为我的笔记本系统不支持doc全屏显示,但是通过对中断及显示方式的进一步查阅和了解,我解决了这个问题。
很感谢老师,在图形坐标的制作上我遇到了点困难,但通过研究所查找的资料和对源程序的分析,基本上可以定义正确的字符图形表。
对于本次课程设计我受益匪浅,很感谢老师和同学的帮助。
5参考资料:
《IBM-PC汇编语言程序设计(第2版)》,作者:
沈美明、温冬蝉,清华大学出版社2001年8月出版。
《IBM-PC汇编语言程序设计实验教程》,作者:
沈美明、温冬蝉、张赤红,清华大学出版社
附录:
array1db0,1,2,3,4,5,6,7,8,9
rowdb0
coldb0
colordb0fh
array2db'
array3db'
array4db'
prognamsegment
assumecs:
prognam,ds:
data
mainprocfar
start:
callclear
pushds
movax,0
pushax
movax,data
movds,ax
leadx,array2
movah,9
int21h
movrow,1
movcol,24
movbx,26
l0:
callreset
moval,7ch
movbh,0
movcx,1
movah,0ah
int10h
incrow
decbx
jnzl0
movrow,2
movcol,0
movdi,0
leadx,array3
movrow,3
movcol,0
l1:
movax,di
addal,30h
int10h
inccol
moval,array1[di]
incdi
cmpdi,9
jal2
addcol,6
cmpcol,22
jbl1
addrow,2
JMPl1
l2:
addrow,4
leadx,array4
movdi,1
l3:
movbx,di
addbl,60h
moval,bl
subbl,60h
moval,0dbh
jal4
addcol,6
cmpcol,22
jbl3
JMPl3
l4:
movcol,26
draw:
movah,0
int16h
cmpah,48h
jeup
cmpah,50h
jedown
cmpah,4dh
jenext1
cmpah,4bh
jeleft
cmpah,53h
jel5
cmpah,01h
jnznum
ret
next1:
jmpright
l5:
jmpdraw
num:
cmpal,30h
jnbl6
l6:
cmpal,39h
jal7
andax,00ffh
subax,30h
movdi,ax
moval,array1[di]
movbl,color
movah,09h
l7:
cmpal,61h
jbl8
cmpal,69h
jal8
subal,60h
movcolor,al
l8:
up:
decrow
jzup1
jmpl9
up1:
jmpl9
down:
cmprow,25
jadown1
down1:
left:
deccol
cmpcol,26
jbleft1
left1:
right:
cmpcol,78
jaright1
right1:
l9:
jmpdraw
mainendp
resetprocnear
movah,2
movbh,0
movdh,row
movdl,col
resetendp
clearprocnear
pushbx
pushcx
pushdx
movah,6
moval,0
movch,1
movcl,26
movdh,25
movdl,79
movbh,7
popdx
popcx
popbx
popax
clearendp
prognamends
endstart
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 字符 图形 程序 设计 实现