汇编语言程序设计打字练习程序

合集下载

第四章 汇编语言程序设计上机练习及简单程序设计

第四章 汇编语言程序设计上机练习及简单程序设计

第四章汇编语言程序设计上机练习及简单程序设计一、汇编语言程序上机过程1、掌握常用工具软件 PE,MASM和LINK的使用。

2、伪指令: SEGMENT,ENDS,ASSUME,END,OFFSET,DUP。

3、利用的 1号功能实现键盘输入的方法。

4、了解.EXE文件和.COM文件的区别及用INT 21H 、INT 4CH号功能返回系统的方法。

程序:data segmentmessage db 'This is a sample program of keyboard and disply'db 0dh,0ah,'Please strike the key!',0dh,0ah,'$' data endsstack segment para stack 'stack'db 50 dup(?)stack endscode segmentassume cs:code,ds:data,ss:stackstart: mov ax,datamov ds,axmov dx,offset messagemov ah,9int 21hagain: mov ah,1int 21hcmp al,1bhje exitcmp al,61hjc ndcmp al,7ahja ndand al,11011111bnd: mov dl,almov ah,2int 21hjmp againexit: mov ah,4chint 21hcode endsend start实验步骤:1、用用文字编辑工具(记事本或EDITPLUS)将源程序输入,其扩展名为.ASM。

2、用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。

若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。

3、用LINK将.OBJ文件连接成可执行的.EXE文件。

4、在DOS状态下运行LINK产生的.EXE文件。

打字练习程序

打字练习程序

信息科学与技术学院微机原理与接口技术课程设计课题名称:打字练习程序学生姓名:学号:专业、年级:指导教师:时间:1、题目及要求:1.1、题目:打字练习程序1.2、要求:1)、缓冲区中预放了一些字母2)、运行时,可按照屏幕上显示的字母输入练习3)、当按结束,可显示出练习输入的时间,并且能显示出正确率。

4)、要求界面美观。

2、功能设计:2.1、功能模块:主程序模块-----主要是随机产生字符并将字符送入缓冲区,调用其他子程序和宏设置窗口及时间、字符总数和正确个数。

打字结果计算与显示模块( UseTimeAndOut,RightRata_out)-----主要计算所用时间及正确率并输出。

设置字符颜色模块(clew_char)-----主要设置打字时缓冲区字符和打字区字符的颜色,包括错误时字符的颜色显示。

字符满行处理模块(isFullLine)-----主要功能是当字符输入满行时进行换行。

输出模块(OutTime,btod_out)-----输出程序运行时的时间。

统计模块(Tongji)-----统计字符个数和正确个数并记录时间。

宏的作用:清屏(Clear)----- 用于按要求清理屏幕(不同颜色),以便产生想要的窗口。

设置光标位置(SETGB)-----用于移动光标位置,以便按要求输出。

读光标位置(READGB)-----用于读取当前光标位置。

提示(Tishi)-----用于输出提示语句。

2.2、功能图:图1 功能图3、详细设计:3.1、设计方法:根据设计要求,该课程设计只应用了些简单的函数调用,中断,宏调用。

其中随机产生字符的实现是通过调用中断(ah=2ch,int 10)取系统时间的1/100 来得到一组随机数,把这些随机数当做指针,然后取指针对应的字符表中相应的字符,得到一串字符。

在把结果显示到屏幕上时将数据拆分后输出到屏幕上。

如‘123’在屏幕上显示时必须一个一个输出,还有在输出小数点时也采取了相应的办法。

汇编语言打字练习程序实验报告

汇编语言打字练习程序实验报告

课程设计说明书题目: 打字练习摘要在IBM-PC系统中,驻留的ROM中有8KB的BIOS。

它实现对系统中种种常用设备的输入输出操作的管理。

其中的16H中断调用即为键盘输入输出中断调用,实现从键盘输入字符到AL寄存器、读键盘缓冲区字符到AL寄存器、读取特殊功能键的状态等功能。

本程序是一个在键盘上打字练习的程序,运行可执行程序后,出现主界面,按回车键出现由78个字母组成的乱序行,这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失;按回车键进入打字练习;按ESC 健返回主界面;按空格键暂停;按’E’退出。

关键词:中断调用,打字练习,回车键进入,空格键暂停目录1设计目的 (1)2概要设计 (2)2.1 系统总体分析 (2)2.2 主模块框图及说明 (2)3详细设计 (4)3.1 主模块及子模块说明 (4)3.2 各模块详细设计 (4)4程序调试 (10)4.1 运行界面分析 (10)4.2 调试过程及分析 (12)5心得体会 (13)5.1 设计体会 (13)5.2 系统改进 (13)参考文献 (14)1设计目的汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。

由于汇编语言如此的接近计算机硬件,因此,它可以最大限度地发挥计算机硬件的性能。

由此可见汇编语言的重要性,学好这门课程,同样可为相关的专业打下基础。

汇编语言程序设计课程设计是在教学实践基础上进行的一次试验,也是对该课程所学理论知识的深化和提高。

因此,要求学生能综合应用所学知识,设计和制造出具有具有一定功能的应用系统,并且在实验的基本技能方面进行了一次全面的训练。

此外,它还可以培养学生综合运用所学知识独立完成汇编程序课题的能力,使学生能够较全面的巩固和应用课堂上所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。

再者,它同样可以提高学生运用理论去处理实际问题的能力和独立思考的能力,使学生的编程思想和编程能力有所提高,最终达到熟练地掌握编写汇编源程序的基本方法的目的。

汇编语言打字练习程序课程设计报告

汇编语言打字练习程序课程设计报告

课程设计说明书题目: 打字练习院系:专业班级:学号:学生姓名:指导教师:2010 年 12 月 31 日安徽理工大学课程设计(论文)任务书计算机科学与工程学院硬件教研室ﻩ2010年12月17日安徽理工大学课程设计(论文)成绩评定表摘要汇编语言是计算机能够给用户使用的最高效快捷的语言,也是唯一能对计算机所有硬件进行操纵的语言。

鉴于汇编语言的用途广泛以及重要性,我花费的大量的时间完成此次课程时机,打字练习。

打字练习是计算机常用的小应用程序,可以给想练习打字的人提供一个好的练习空间。

本文的核心部分是对于详细设计的讲解与分析,而这当中的侧重点又在于设计思想的再现。

关键词:功能模块,核心代码,随机字符,模块调用,功能分析目录1设计目的ﻩ错误!未定义书签。

2概要设计 .......................................................................... 错误!未定义书签。

2.1系统总体分析 ...................................................................................................... 错误!未定义书签。

2.2主模块框图及说明ﻩ错误!未定义书签。

3 详细设计 ......................................................................... 错误!未定义书签。

3.1主模块及子模块说明 ........................................................................................ 错误!未定义书签。

3.2各模块详细设计ﻩ错误!未定义书签。

3.2.1主界面模块.................................................................................................. 错误!未定义书签。

汇编语言课程设计打字计时练习【范本模板】

汇编语言课程设计打字计时练习【范本模板】

学生课程设计(论文)题目:打字计时练习学生姓名:学号:所在院(系):计算机学院专业:信息与计算科学班级: 06级2班指导教师:职称:2008年12 月26 日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书注:任务书由指导教师填写。

课程设计(论文)指导教师成绩评定表摘要在IBM—PC系统中,驻留的ROM中有8KB的BIOS。

它实现对系统中种种常用设备的输入输出操作的管理。

其中的16H中断调用即为键盘输入输出中断调用,实现从键盘输入字符到AL寄存器、读键盘缓冲区字符到AL寄存器、读取特殊功能键的状态等功能。

本程序是一个在键盘上练习打字并能统计时间的程序,在缓冲区中预放了一些字母,运行时,可按照屏幕上显示的字母输入练习,每输入完一行按回车键后,可显示出练习输入的时间.通过它练习英文打字练习,并能够统计时间。

程序运行时,使用自编的中断向量处理程序.程序退出时,恢复中断向量。

关键词打字计时,寄存器,缓冲区,中断向量1、课程设计题目描述和要求1.1 问题提出及功能要求设计一个在键盘上练习打字并能统计时间的程序。

通过它练习英文打字练习,并能够统计时间。

屏幕上显示出提示信息和练习例句,按照例句从键盘上输入字母即可,每输入完一行后按回车键,可显示出练习输入的时间和下一行例句.按Esc 键可退出程序.1。

2 运行环境Windows XP/98/2000操作系统、文本编辑器使用EDIT或NOTEPAD,汇编程序使用MASM。

EXE,连接程序使用LINK.EXE,调试程序使用DEBUG。

EXE。

1。

3 本课题涉及的知识点定义数据段,设置主要参数:设置9号中断向量地址,9号中断向量首址,1C 向量地址;定义时间参数为秒、分、小时。

在代码段,调用中断8259、键盘中断、时钟中断、并设置打字计时文件程序顺序。

整个程序使用序分化各子功能.2、算法设计2。

1设计思路在键盘上练习的打字例句及其地址表、计时单元等预先放在DATA数据段中,自编的中断程序kbint检测按键时产生的中断,并把按键的扫描码转换为ASCII 码存入缓存区buffer,这个工作和ROM09类型的键盘中断例行程序所完成的工作大致相同,只是在解释各个键时作了简化,即只解释了可显示字符,如英文字母、数字及一些符号;其他特殊键,如组合键、双态键、功能键等都未作解释,只作为字符码0来处理.在主程序部分保存原09类型的中断向量,设置自编例行程序的中断向量,设置中断屏蔽位,然后开中断。

打字练习汇编语言程序程序设计

打字练习汇编语言程序程序设计

目录1 方案论证 (1)1.1题目要求 (1)1.2算法说明 (1)1.2.1输入/输出算法 (1)1.2.2时间计算算法 (2)1.2.3正确率计算算法 (2)2程序流程图 (3)2.1主程序流程图 (3)2.2时间计算流程图 (4)2.3正确率计算流程图 (5)3.设计关键问题 (7)3.1输入输出 (7)3.1.1 输出显示信息 (7)3.1.2 输入十个字符 (8)3.2 输入字符串所用时间计算 (9)3.3 正确率判断 (10)4.调试运行结果分析 (12)心得体会 (15)参考文献 (16)附录 (17)打字练习汇编语言程序程序设计1 方案论证1.1题目要求本次《微机原理与接口技术》课程设计的题目是打字练习汇编语言程序设计,要求在屏幕输出提示信息及一串有十个字符的字符串的同时开始记录系统时间,当输入十个字符后,再次记录系统时间,计算输入字符串的时间,及输入字符串的正确率,并将最终结果显示在屏幕上。

只有完全正确才能进入下一字符串的练习,并最后显示赞赏提示信息,否则,继续练习该字符串的输入,知道全部输入正确;一串字符串输入结束后,如果不想继续打字练习,则按‘1’退出打字练习如果想继续进行打字练习,则按任意键进入下一字符串的练习,直到练习完三串字符串,按‘1’退出。

1.2算法说明打字练习汇编语言程序设计的主要算法是进行时间的计算和正确率的判断,并将最后结果显示在屏幕上。

1.2.1输入/输出算法DOS功能调用的过程为:首先,将DOS功能调用号送入寄存器AH中,其次,如果序言按要求给定输入参数(有的不需要输入参数),最后,写入终端指令INT21H。

DOS的输入输出包括单字符输入输出和多字符输入输出。

(1)单字符输入输出算法单字符的输入,是DOS的01H号功能调用,没有输入参数,输出参数是AL=要输入字符的ASCII码。

单字符的输出,是DOS的02H号功能调用,输入参数为DL=要输出的字符的ASCII码,无数除参数。

汇编课程设计打字游戏

汇编课程设计打字游戏
附录:程序主要代码
;程序中要用到的一些宏指令及其说明
getChar MACRO char;调用1号功能,接收一个字符,将字符放在char里
PUSHAX
MOVAH,1
INT 21H
MOVchar,AL
POPAX
ENDM
showChar MACRO char;调用2号功能显示字符
PUSHAX
PUSHDX
INT 10H
POPAX
ENDM
initWindow MACRO A,B,C1,C2,D1,D2;初始化窗口或窗口内容向上卷动,也可以用于清屏
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVAH,6
MOVAL,A;上卷行数
MOVBH,B;卷入行属性(颜色)
MOVCH,C1;左上角行号
MOVCL,C2;左上角列号
DB'Start',0dh,0ah,'$'
DB'Setting',0dh,0ah,'$'
DB'Quit',0dh,0ah,'$'
KickDB?
XDB?
YDB?
ErrorMsgDB'Error!',0dh,0ah,'$'
EXITMsgDB' You really want to exit,enter Y to exit,and N to continue! (Y/N)',0dh,0ah,'$'
在具体实现的过程中遇到了很多困难。由于自己的电脑是64位的不兼容,所以平时对编好的程序在windows环境下用记事本打开程序对其进行说明注释,由于使用了中文,所以回到dos环境时出现了乱码。本次课程设计让我们充分了解了汇编在实际软件开发中的作用和地位。在这次课程设计过程中我们把课堂上的知识充分运用了还是不能完成实际软件开发。这说明程序开发是不能够停留在书本上的,想要把程序作好,必须要不断通过各种途径掌握更多更好的知识,并且最重要的是要将获得的知识运用到实际编程中,要学以致用。本次课程设计是自由分组、自由选题。我们可以根据我们的兴趣和优势来选择题目。通过这次编写打字游戏程序的课程设计,最基本的收获是我了解了汇编语言编写程序的步骤:先确定程序要实现的功能,接着定义需要的寄存器、存储器,画出流程图。然后逐个模块实现其功能。此次的课程设计,提高了我阅读和分析程序的能力,以及模仿能力。编程能力实事求是地说还有待提高,觉得自己逻辑性太差,但相对于原来学的高级语言,对汇编很感兴趣,最终虽然不会从事汇编的编程工作,但知识就是力量,学习汇编拓展了自己的知识面。

打字练习程序设计论文

打字练习程序设计论文

目录一概述 (2)1.背景分析及意义 (2)2. 课程设计的目的 (2)3. 课程设计的要求 (3)4.汇编语言的介绍 (3)二总体方案设计 (5)1. 程序设计的整体设计思路 (5)2. 算法的整体设计思路 (6)3. 程序的主要特点 (6)4. 程序的主要功能 (6)三详细设计 (7)1. 主界面的设计 (7)2. 打字练习程序设计 (8)3.等级界面的设计 (9)4. 帮助界面的设计 (9)5. 生命计数和分数值的设计 (10)6. 清屏子程序设计 (11)四程序的调试与运行结果说明 (12)1.MASM5.0简介 (12)2. 程序的运行结果 (12)五课程设计总结 (16)致谢 (16)参考文献 (18)附录 (19)一概述1.背景分析及意义随着计算机的不断更新发展,计算机在各个领域的应用越来越多,更多的软件开发人员和相关技术人员在程序设计的过程中应用汇编程序或编制汇编语言。

而汇编语言作为计算机专业大学生必修课,每个作为本专业的学生对汇编的理解和学习就显得尤为重要。

汇编语言是计算机能够提供用户使用的最快而又最好最有效的与言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。

因而,对程序的空间和时间要求很高的场合,汇编语言的应用就显得必不可少了,一些直接控制硬件的应用场合,则更是非用汇编语言不可了。

《打字练习程序设计》课程设计是在教学实践基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。

因此,要求我们能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。

通过具体的问题分析、设计、调试、运行程序。

在实际问题中锻炼提高自己,增加了对本门课程内容的理解,锻炼了动手能力。

就这个程序具体而言:调用宏,显示背景和主界面,通过选择不同的选项,可以进入不同的界面;采用BIOS功能的中断,可以在任何时候退出当前所在的界面并通过选择进入其他的界面。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言课程设计报告( 2014 -- 2015 年度第 1 学期)专业 xxx 学生姓名xxxx班级xxx 学号xxxx 指导教师 xxx 完成日期xxxxx课题名称: 打字计时练习程序目录1.设计目的与设计要求2.程序流程图 (5)2.1主程序流程图 (5)2.2时间计算流程图 (6)2.3正确率计算流程图 (7)3.设计关键问题 (9)3.1输入输出 (9)3.1.1 输出显示信息 (9)3.1.2 输入十个字符 (11)3.2 输入字符串所用时间计算 (11)3.3 正确率判断 (13)4.调试运行结果分析 (14)参考文献 (19)附录二打字计时练习程序 (19)一.设计目的本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题,解决问题的综合应用能力。

设计要求在缓冲区预放了一些字母,运行时,可按照屏幕上显示的字母输入练习,每输入完一行按回车键后,可显示出练习输入的时间。

设计思路1.系统总体分析在缓存区预放了一些字母,运行时可按照屏幕上显示的字母输入练习,每输入完一行按回车键后,可显示出练习输入的时间。

当一个句子分析完后(回车键作为结束符),屏幕上以min:sec:msec的格式显示出键入字符的时间。

在每次打字之前,屏幕上先显示一个例句,然后打字员按照例句,将句中字符通过键盘输入。

这个过程共进行五次,当键入一个enter键时,推出打字计时练习程序。

在键盘上联系的打字例句及其他地址表,计时单位等预存在DATA数据段中。

自编的中断程序Kbint检测按键时产生的中断,并将按键扫描码转换为ASCII码存入缓存区BUFFER(内存中一个区域),这个工作和EOM09类型的键盘中断例行程序所完成的工作大致相同,只是在解释各个键时作了简化,即只解释了可显示字符(如英文小写字母,数字及一些字符),其他特殊键(如组合键,双态键,功能键),都未做解释,只做字符码0来处理。

在主程序部分保存原有09类型的中断向量,设置自编例行程序的中断向量,设置中断屏蔽位,然后在开断。

当键盘中断处理后,主程序安排指令读取缓存区中的字符并显示在屏幕上。

在主程序的末尾,利用DOS功能恢复原09类型的中断向量,然后返回DOS。

在显示键入的字符时,还应判断字符是否为回车符。

说明一个句子输入完毕,此时调用显示时间的子程序显示打字时间,然后顺序显示一个例句。

如果所存放的例句都已显示完毕,则再次从第一个例句开始显示,直至键入某个功能(如ESC键等)退出程序,结束打字练习。

打字时间统计利用自编的计时器中断处理程序Clint来完成。

每输入一个例句,计时一次。

在此中断例行程序中,定时器中断的次数记录在计数单位count中,当count的计数单位为18 时,sec计数单位加1,当sec计数值达到60时,min计数单位加1,因为输入一个句子无论如何不会达到小时级,所以hours计数值得调整判断,实际上只起到退出计时器的作用。

加入一个显示菜单程序,使得原来的程序具有观赏性;显示时间的子程序disptime分别将各计时单位的二进制数转化为十进制,并以min:sec:msec的形式出来。

其中msec是由count中的计数值转化成的。

Count*1s/18.2=count*55ms此式中,18.2是计算机系统中产生的一个中断,每秒18.2次。

2.主模块框图程序的核心模块是打字计时,通过显示的例句进行打字练习,最后显示打字时间,主题流程图如下:a. 建立汇编源程序—通过b.编译为目标文件——d.连接执行文件c.不通过,重新修改(语句错误) e.运行f.不正确,用调试工具调试,重新修改(逻辑错误)g.正确完成2程序流程图2.1主程序流程图、图1 主程序流程图主程序的流程图如图1所示:说明:首先定义堆栈段,数据段,代码段等,初始化。

显示提示信息提示打字练字的规则,说明如何开始,如何退出等。

显示出字符串后,开始读取系统时间并保存。

然后输入字符串存到指定的缓冲区。

输入结束后,再次读取系统时间,并由两次所读取的时间计算出输入字符串所用的时间并显示。

调用正确率计算函数,并显示在屏幕上。

看输入字符串对应位正确的个数是不是十个,如果是十个,则继续往下,看输入的是不是退出键1,如果是,则退出。

如果不是,则继续下一串字符的练习。

如果输入正确的个数不是十个,则返回继续该字符串的练习,指导最后输入的正确个数是十个。

2.2时间计算流程图计算时间的流程图如图3所示:说明:第一次读取系统时间后,分和秒分别存在了second和minutes里,第二次读取系统时间后,比较DH里的内容和second里的内容,比较结果是second里的内容比较小,则不用向分借位,直接进行减法运算,并把计算结果转换成ASCII码并在屏幕上显示。

如果比较的结果是second里的内容是比较大,则进行减法运算时,要向分借位,所以,将DH寄存器的内容加上60,再与second 里的内容进行减法运算,最后把运算结果转化成ASCII码,并显示在屏幕上。

图3 时间计算流程图2.3正确率计算流程图正确率显示函数的流程图如图4所示:说明:调用争取率判断子程序,首先保护现场,BX指向字符串ADDRESS[SI]首地址,BX+2,指向第一个要显示的字母,DI指向输入缓冲区的首地址,CX寄存器存入十,控制循环次数。

比较[BX]HE [DI]里的内容,即判断显示的和输入的字母是否相同。

如果相同,计数寄存器AL内容则加一,BX加一,DI加一,继续下次比较,直到十次循环结束。

如果不相同,则计数寄存器AL内容不变,BX 加一,DI加一,继续下一次循环,知道十次循环结束。

当十次循环结束后,即字符串输入结束后,寄存器AL里的内容就是输入正确的个数,AL高四位是输入正确数的十位,低四位是输入正确数的个位,将十位和个位分别转化成ASCII码,并将其存入字符串中,调用DOS的9号功能输出字符串,输出的就是屏幕显示的字符串和输入的十位字符串对应位相同的个数,然后恢复现场。

每调用一次正确率判断函数,SI加二,即第一次调用该子程序屏幕上显示的是第一组字符串,第二次调用,当SI大于5时,就退出程序。

图4 正确率显示函数的流程图3.设计关键问题在打字练习汇编语言程序设计中,主要有三个问题,分别为输入和输出问题、输入字符串时间的计算、正确率的判断。

3.1输入输出3.1.1 输出显示信息输出字符串,主要是利用DOS的9号功能调用。

当开始打字练习时,要输出提示信息说明打字练习时的规则,其程序为:message db 0ah,0dh, 'Welcome to WUHAN UUIVERSITY, Please type 10letters, and you must input 10 right words, then press any key topractice the next one 'db 0ah,0dh, 'if you want to quit, press 1 ',0ah,0dh,'$'lea dx,messagemov ah,9int 21h显示信息输出后,要显示预先存在缓冲区的三组字符串,显示字符串用DOS9号调用,其程序为:str1 db 0ah,0dh,'wuhanunive'db 0dh,0ah,'$'str2 db 0ah,0dh,'hubeichina'db 0ah,0dh,'$'str3 db 0ah,0dh,'qmpzwmoxid'db 0ah,0dh,'$'address dw str1,str2,str3mov dx,offset address[si]mov ah,9int 21h只有当输入的字符串中的十个字符全部正确时,则显示进入下一字符串的练习并输出鼓励语,其程序为:et db 0dh,0ah,'Congratulations, Well done!',0ah,0dh,'$'mov dx,offset etmov ah,09hint 21h当要显示输入字符串所用的时间以及显示输入字符串个数时,可以采用单个字符的输出,但是为了在屏幕上看起来直观,就把要显示的时间和正确个数的十位和个位分别存在缓冲区,并把缓冲区的内容采用9号调用输出在屏幕上,其程序为:(1)显示输入字符所用的时间的程序time db 2 dup(?),'$'mov time[0],ah;输入字符串所用时间的十位送入time[0]mov time[1],al;输入字符串所用时间的个位送入time[1]mov dx,offset time;显示time中的内容mov ah,9int 21h(2) 显示输入字符串正确个数的程序为:num db 2 dup(?),'$'mov num[0],bh ;输入字符串正确个数的十位送入num[0]mov num[1],bl;输入字符串正确个数的个位送入num[1]mov dx,offset num;显示num中的内容mov ah,9int 21h3.1.2 输入十个字符当屏幕显示出要练习字符串时,就要输入十个字符存到指定的缓冲区中,使用DOS 1号功能调用,其功能是输入单个字符,输出参数是AL=输入字符的ASCII 码,循环十次,将十个字符存入指定的缓冲区buff中,其程序为:buff db 15 dup(?)mov cx,10 ;cx=10,控制循环次数mov bx,0again:mov ah,1 ;输入单个字符int 21hmov buff[bx],al;将输入的字符存到指定的缓冲区inc bxloop again3.2 输入字符串所用时间计算对输入字符串时间的计算,需要知道输入字符串前的时间和输入字符串后的时间,将两者相减,即得输入字符串所用的时间。

具体为:当显示第一串字符串后,调用DOS 的2CH号功能读取系统时间,读取完系统时间后,系统时间的时、分和秒分别存在寄存器CH、CL、DH中。

并将CL和DH的内容保存到minutes和second中,以便计算输入字符串所用时间用;第一次读取系统时间后,开始输入10个字符,当输入字符结束后,再次读取系统时间,首先第二次的分钟数减去第一次的分钟数,如果结果大于零,则用第二次的秒数减去第一次的秒数,所得的结果转化称ASCII码显示在屏幕上,即为输入字符串所用的时间。

如果第二次的分钟数减去第一次的分钟数的结果小于零,则第二次的秒数加上60后,再减去第一次的分钟数,所得结果妆化称ASCII码后显示在屏幕上,则为输入字符串所用的时间。

相关文档
最新文档