基于汇编的可视化打字速度测试器.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档