- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于汇编的可视化打字速度测试器
题目:基于汇编的可视化打字速度测试软件
1、设计简述
该设计(基于汇编的可视化打字速度测试软件)提供了友好的操作界面,在99s内使用者根据提示输入所提示的句子,然后回车,即可显示开始打字时间、以及结束时间、时间差值、同时也自动计算出软件使用者的平均打字速度(单位perchar/sec),使使用者能够方便的查看自己的打字速度。
该程序主要是用emu8086工具编写以及调试,emu8086是一个非常不错的汇编调试工具。在该软件的设计过程中,大量使用了宏定义,宏展开,同时也运用了一些子函数调用,DOS功能调用、BIOS功能调用等
该程序大致可以分为如下几个模块:可视化界面、输入部分、检测部分、输出部分。如下详述
(转下页)
2、程序流程图
在该流程图中,只画出了主要部分的流程,一些譬如JNZ/JC/JNC/JMP等都没画出,这些将在第四部分程序注释中体现:
1,返回界面开始界面
1,返回界面
开始界面
1 or 2
获取时间转化并存储
10号调用结束后回车
输入单个检测
计算时间差,速度等
1 or 2
结束并显示界面
CX=0?
Time99?
输出结果
2,EXIT
是
否
2,退出程序
否
是
1,开始
3、模块化设计
3、1、可视化界面设计
在界面设计中,主要用到了DOS INT21H/09H号功能调用,在此程序中,用宏将该调用封装,在使用该调用时,直接宏展开即可,如此节约了写程序时间,同时也便于查看修改,显示宏定义如下:
DisplayStr MACRO Strings
MOV DX,OFFSET Strings
MOV AH,09H
INT 21H
ENDM
在需要显示数据或者字符串时,直接展开宏。除此之外,还用到了BOIS INT 10H/6H调用,
此调用具有清屏功能,设置好适当的参数,即可使界面整齐美观,本程序中,用该调用定义了一个滚屏宏,以便在使用的快捷,高效,滚屏宏定义如下:
ScrollScreen MACRO roll,x1,y1,x2,y2
MOV AH,6 ;设置向上滚动清屏,也可为7
MOV AL,roll
MOV BH,0dh
MOV CH,x1 ;左上角行
MOV CL,y1 ;左上角咧
MOV DH,x2 ;右下角行
MOV DL,y2 ;右下角咧
INT 10H
ENDM
这样,在设置界面是展开这这两个宏。
3、2、输入部分设计
输入部分设计中主要包括两个部分,定位部分和输入部分
3、2、1、定位部分
在鼠标定位过程中,用到了BOIS INT 10A/02H调用,同样将其定义为宏的形式,要使用时,就展开该宏,光标定位宏如下:
CursorPosition MACRO x,y
MOV DH,x
MOV DL,y
MOV BH,0
MOV AH,02
INT 10H
ENDM
3、2、2 、输入部分
在输入部分,主要用到了DOS INT 21H/1H 以及INT 21H/0AH调用,1号功能调用实现选择,10号调用实现接收所输字符串。
3、3、检测部分
检测部分,即实现了对所输入字符正确的个数进行计数。这部分通过loop循环检测来实现。设置好字符个数,赋给CX(循环次数),然后通过不断的CMP,INC等指令来完成记下正确字符数。
3、4、输出部分
输出部分主要用到DOS INT 21H/2CH 号调用,该调用可以获取BIOS的实时时间,通过该调用可以获取测试前的BIOS时间时分秒以及测试完成后的BIOS时间时分秒,然后通过SUB指令计算它们之间的差值,该差值就是测试者测试所花时间。最后,检测部分所检测的正确个数和该时间差值相比,从而得出并输出测试者的打字速度。INT 21H/2CH 调用如下:
MOV AH,2CH
INT 21H
该调用的返回值:小时部分存在CH中,分钟部分存在CL中,秒存在DH中。
4、源代码以及简要注释
stack segment stack stack
dw 32 dup(0)
stack ends
data segment
str1 db 0dh,0ah,==========================================
str2 db 0dh,0ah,[| Typing Speed Test |]
str3
您可能关注的文档
最近下载
- 《医疗和疾控机构后勤安全生产工作管理指南(2023年版)》——医用气体安全管理指南实践分享.pdf VIP
- 温州育英国际实验学校初一招生试卷语文试卷.docx VIP
- 建筑工程资料承包合同.docx VIP
- 房地产公司资金平衡表(深度好表).xlsx VIP
- 新解读《HJ 1285-2023屠宰及肉类加工业污染防治可行技术指南》最新解读.docx VIP
- 离心式冷水机组调试方案.pdf VIP
- 2024人教版小学三年级劳动技术上册第一单元:纸工大单元整体教学设计.docx
- 范例9:悬挑式脚手架专项施工方案.pdf VIP
- HSK(四级)词汇整理.pdf VIP
- 1994年全国高中化学竞赛试题.pdf VIP
文档评论(0)