字符图形程序Word格式文档下载.docx
- 文档编号:930764
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:16
- 大小:84.77KB
字符图形程序Word格式文档下载.docx
《字符图形程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《字符图形程序Word格式文档下载.docx(16页珍藏版)》请在冰点文库上搜索。
周3、周4:
完成程序调试,和验收。
周5:
撰写课程设计报告。
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
1设计内容及要求
1.1设计内容
(1)制作一个图形元素表,表中将所需的各种字符图形编上号码,并用存储器映射法将其显示在屏幕的左上部分。
(2)将光标定位在屏幕的右半部分画图区,上、下、左、右光标控制键控制光标在四个方向的移动,不显示其轨迹,同时要控制光标位置不超出画图区的边界。
(3)当按动某一数字键时,在光标位置处显示出相应编号的字符图形,然后移动光标,再显示下一个图形,最后绘出一幅有字符组成的图形。
(4)按动ESC键,退出程序,返回DOS。
1.2设计要求
理解计算机系统中图形显示的工作原理,掌握文本方式下BIOS对图形显示的控制方法。
2设计中使用的关键技术和方法
2.1BIOS键盘中断(INT16H)
类型16的中断提供了基本的键盘操作,它的中断处理程序包含3个不同的功能,分别根据AH寄存器的内容来选择。
这里我使用了其中的1个功能,如下表:
AH
功能
返回参数
00
从键盘读一个字符
AL=字符码,AH=扫描码
2.2BIOS显示中断(INT10H)
这里我使用了BIOS显示中断的4个功能,如下表:
调用参数
返回参数/注释
02
置光标位置
BH=页号,DH=行,DL=列
06
屏幕初始化或上卷
AL=上卷行数,AL=0全屏幕为空白,
BH=卷入行属性,CH/CL=左上角的行/列号
DH/DL=右下角的行/列号
09
在光标位置显示字符及属性
BH=显示页,AL=字符,BL=字符,
CX=字符重复次数
0A
在光标位置显示字符
BH=显示页,AL=字符,CX=字符重复次数
2.3DOS系统功能调用(INT21H)
这里我使用了DOS系统功能调用的一种功能,如下表:
显示字符串
DS:
DX=串首地址,字符串以‘$’结尾
2.4其它方法与技术
本次课程设计中我还用到了宏汇编和子程序设计。
3设计方案说明
3.1模块层次图
3.2各模块说明
3.2.1输入
功能为从键盘接收字符。
调用参数AH=功能类型。
返回参数AL=输入字符的ASCII码,AH=输入字符的扫描码。
3.2.2显示
功能在DOS文本方式显示字符。
调用参数AH=功能类型,BH=显示的页号,AL=要显示的字符,BL=显示字符的属性(颜色等),CX=字符的重复次数。
无返回参数。
3.2.3清屏
功能为清楚屏幕内的内容。
调用参数AH=功能类型,AL=0初始化窗口,BH=卷入行属性,CH/CL=要清屏区域左上角的行/列号,DH/DL=要清屏区域右下角的行/列号。
3.3程序流程图
3.4主要数据结构的定义和说明
3.4.1数组
字符数组:
array1db0,1,2,3,4,5,6,7,8,9
储存字符表
3.4.2字符串
字符串:
array2db'
pleasepayattention:
press"
ESC"
toexit&
press"
del"
toclearscreen'
'
$'
array3db'
CHARACTER:
'
array4db'
COLOR:
储存字符串。
3.5程序界面描述
程序界面为一个25×
80的窗口,窗口中设置一个边界,区别字符集和画图区域,左边的部分显示按键及其对应的字符,右边区域用于画图。
详细如下图:
图3“字符处理系统”界面截图
4测试及评估
4.1测试结果
通过键盘输入0-9来画字符,通过输入←,↑,→,↓来控制画图光标,通过键盘输入a-i来控制显示字符的颜色,输入‘del’键来清除画图区域。
结果如下图:
图4“字符处理系统”运行结果截图
4.2评估
运行结果还不错,基本达到了本次课程设计的要求。
5设计心得
本次课程设计过程中遇到的问题主要有:
界面设计时候,设计区域边界和区域内布局比较难确定;
编码过程中光标位置的重置容易忘记;
运用中断时候容易搞错调用参数;
编码过长,内存占用比较多。
通过此次实验,我对汇编语言程序设计有了进一步的了解。
对于DOS中断和BIOS键盘中断、BIOS显示中断,我有了更深层次的了解,对于其功能调用有了一定的掌握。
这次实验还让我熟悉了分支程序、子程序设计和一定的宏汇编知识。
本次课程设计的程序只是在文本模式下显示字符,以后此程序也可以扩展到显示器显示模式下用读写像素法绘图。
同时字符样式和颜色也可以扩展。
6参考资料
《IBM-PC汇编语言程序设计(第2版)》,作者:
沈美明、温冬蝉,清华大学出版社2001年8月出版。
《软件工程导论(第四版)》,作者:
张海藩,清华大学出版社2003年11月初版。
《IBM-PC汇编语言程序设计实验教程》,作者:
沈美明、温冬蝉、张赤红,清华大学出版社1996年4月出版。
7附录:
源程序清单
datasegment
array1db0,1,2,3,4,5,6,7,8,9
rowdb0
coldb0
colordb0fh
array2db'
array3db'
array4db'
dataends
resetmacro;
宏:
重置光标位置
movah,2
movbh,0
movdh,row
movdl,col
int10h
endm
showmacro;
movbh,0
movcx,1
movah,09h
prognamsegment
assumecs:
prognam,ds:
data
mainprocfar
start:
pushds
movax,0
pushax
movax,data
movds,ax
leadx,array2
movah,9
int21h
movrow,1;
设置区域边界
movcol,24
movbx,26
l0:
reset
moval,7ch
movah,0ah
int10h
incrow
decbx
jnzl0
movrow,2
movcol,0
movdi,0
leadx,array3;
显示字符图集
movrow,3
movcol,0
l1:
movax,di
addal,30h
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
show
jal4
cmpcol,22;
jbl3
JMPl3
l4:
movrow,1
movcol,26
draw:
;
从键盘接收字符并判断其功能
movah,0
int16h
cmpah,48h
jeup
cmpah,50h
jedown
cmpah,4dh
jeright
cmpah,4bh
jeleft
cmpah,53h
jel5
cmpah,01h
jnznum
ret
l5:
callclear
jmpdraw
num:
cmpal,30h
jnbl6
l6:
cmpal,39h
jal7
andax,00ffh
subax,30h
movdi,ax
movbl,color
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:
deccol
l9:
jmpdraw
mainendp
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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 字符 图形 程序