- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
人工造字汇编程序
题目重述:
程序设计要求:
在屏幕上开一个 16*16 的点阵,(每点由若干像素组成) 用鼠标左键起笔,用鼠标右键插除
在屏幕适当位置用正常大小显示所造之字 按某键保存所造之字及其输入码
按某键输入所造之字的输入码并在适当位置显示
编程思想简述:
程序所实现的功能
该汇编程序除了能使用鼠标左右键实现涂抹等基本功能之外,还有以下几个其他的功 能:
可以由用户自己定义编码, 用户可以根据自己的习惯和喜好, 输入所造字形的拼音或者是五 笔等等,也方便记忆。
如果用户对于不同的字形重复定义了编码, 程序可以及时地发现, 并且提示用户重新输入编 码。
由于完整地扫描了整个点阵, 所以可以任意缩放所造之字, 并且不会丢失任何信息, 但是出 于显示效果的考虑, 另外还有我们写字的工整性欠佳等方面, 本程序还是采用了完全还原所 写之字的方法。 矚慫润厲钐瘗睞枥庑赖賃軔。矚慫润厲钐瘗睞枥庑赖賃。
采用比较科学的文件记录格式, 所以能比较有效和快速的实现编码的匹配查找。 在程序的快 速和简洁方面有一定的改进。 聞創沟燴鐺險爱氇谴净祸測。聞創沟燴鐺險爱氇谴净祸。
程序流程图:
C初始化程序,显示功能键、
(E)—edit (I) — input code(Q)— exit
等待键盘输入
检测鼠标状态,左键按下,则、右键按下,则将相应得
检测鼠标状态,左键按下,则、
右键按下,则将相应得8*8的
打开文件,按文件的记录格式、
将相应得8*8的矩阵区间涂抹矩阵区间涂抹成黑色挨个查找文件中的编码,并且成黑色与输入编码比较按键盘任意键启动字符保留\f将与输入编码相符合的图示、函数,提示用户输入所造之字信息读出,并且在屏幕适当的的编码
将相应得8*8的矩阵区间涂抹
矩阵区间涂抹成黑色
挨个查找文件中的编码,并且
成黑色
与输入编码比较
按键盘任意键启动字符保留\
f将与输入编码相符合的图示、
函数,提示用户输入所造之字
信息读出,并且在屏幕适当的
的编码
位置重绘。
£描矩阵方块,将图信息存储、
在一个32*32的矩阵里面,连
同编码一起存储在文件中
残骛楼諍锩瀨濟溆塹籟婭骤。残骛楼諍锩瀨濟溆塹籟婭。
遇到的主要问题及其解决办法
问题1、VGA图形卡的显示问题
由于以前没有碰到过这方面的问题,通过查找书籍 ,知道现在有两种解决方法:
a,用BIOS的INT 10H的0C和0D功能。这种方法简单,只需要提供颜色和像素的行列数, 但是执行起来速度慢,性能低。 酽锕极額閉镇桧猪訣锥顧荭。酽锕极額閉镇桧猪訣锥顧。
b,直接控制显示适配器读写显存(在 VGA640*480,16色下,显存的始地址是 A000H)。这 种方法复杂,需要理解显示适配器的数据寄存器各字段的意义, 并且设置起来也复杂, 但是
程序速度快,可以实现复杂的程序。 彈贸摄尔霁毙攬砖卤庑诒尔。彈贸摄尔霁毙攬砖卤庑诒。
由于本程序的点阵是采用以 8*8的方块作为基本的图形单位,所以 使用方式b更加方便和
直接,况且还可以获得方式 b良好的性能,所以,本程序使用的是直接控制显示适配器读写
按E键进入造字程序
「按Q键退出汇编程序,回到1
*按I键进入查询显示程序,提
启动set_mode函数,绘出
DOS提示符界面
示用户输入所找之字的编码
32*32点阵,同时启动
init_mouse函数,激活鼠标
显存的方式謀荞抟箧飆鐸怼类蒋薔點鉍。謀荞抟箧飆鐸怼类蒋薔點。
问题2、读写文件的记录格式问题
由于点阵是32*32的组织格式,所以在记录图形信息的时候,这些信息量是比较大的,即使 采用每个点用一个 bit来记录(1-该点文白色,0-该点为黑色),记录整个图形也要 128byte, 这对于文件的查找等操作造成了很大的不方便。 所以在设计记录格式的时候, 我使用了下面
的 方 法
A B :
A B : 1---10 位
C: 128位
厦礴恳蹒骈時盡继價骚卺癩。厦礴恳蹒骈時盡继價骚卺。
文件记录格式图示说明
A区 记录编码的个数,即随后的几个字节是表示字的编码
B区 记录相应的编码,编码的个数不能超过 10位
C区 把128byte的图形信息记录在里面
查找算法:在比较输入编码和文件中存在的编码是否重复的时候, 我们先读入A区的编码个
数,如果不相等,则将文件指针向后移动 (A+128)位,去读取下一个编码。 如果相等, 则将后面的A个编码读出来,然后和输入的编码进行比较,不相等的话则将文件读写指针向 后移动128个字节, 读取下一个编码。相等的话则将将位图信息读取出来, 然后显示在屏
幕上。这种方法能比较快速的实现文件的查找,从而大大提高程序的执行速度。 茕桢广鳓鯡选
块网羈泪镀齐。茕桢广鳓鯡选块网羈泪镀。
问题三:鼠标的初始化和相应状态的读取
通过相关的学习,知道下面的信息:
鼠
原创力文档


文档评论(0)