当前位置:首页 > 汇编语言课程设计报告-打字练习程序
陕西师范大学汇编语言课程设计实验报告
着输出的字符属性或颜色;计数器CX中存放的则是重复输出字符的个数。本程序中令CX中存放78,也就是说loop循环程序将循环78次,程序的输出为78个字符,当loop循环程序运行结束之后,程序将执行下一条指令,调用DAZIRUKOU子程序。使得程序继续运行,让用户按照程序自动产生的字符串来进行打字练习。 3.2.3字母落下模块
程序自动进入打字功能,自动落下字符,等待键盘输入字符以此来判断输入者想什么,如果键盘输入与预期的相符合则程序自动执行相关功能。如果输入字符与落下字符相同,程序执行当前字母消失和产生下一落下字母的功能,字母落下功能的实现是通过逐行替换的方法实现的,字母在当前行出现会有一个延迟时间,当过了这个延迟时间时,程序执行当前位置清空操作,并在下一行显示上一行的字母。代码如下:
hit: mov ah,02h mov bh,00h mov dh,01h
mov dl,present_position int 10h
mov al,[di] ; 出现下一个新字母的数法 add al,7 cmp al,7ah ja convey_letter mov ah,0ah mov bh,00h mov cx,01h int 10h mov [di],al
add letter_counter,01h
—9—
陕西师范大学汇编语言课程设计实验报告
jmp nextcycle convey_letter: sub al,7ah add al,61h mov ah,0ah mov bh,00h mov cx,01h int 10h mov [di],al
add letter_counter,01h jmp nextcycle clear_screen 01,01,23,78 mov ah,02h mov bh,00h mov dh,11d mov dl,20d int 10h inc dh inc dh mov ah,02h mov bh,00h int 10h
disappear: ;击中字母后输出空格 pop cx pop cx mov ah,0ah mov al,\ mov bh,00h mov cx,01h int 10h jmp hit
3.2.4暂停模块
如果输入空格,则程序执行暂停功能,暂停功能的实现是通过以下方法实
—10—
陕西师范大学汇编语言课程设计实验报告
现的,当从键盘输入空格时,程序收到暂停信号,执行跳转,跳转到一个死循环模块,就是无限显示当前屏幕,不做其他任何操作,直到键盘再次输入空格时,程序收到暂停结束指令,跳转回到主程序模块,继续执行主模块的功能。代码如下:
pass: pop cx inc cx cmp cx,speed je print jmp out_cycle
pause: push dx ;暂停处理 mov ah,06h mov dl,0ffh int 21h pop dx cmp al,\ jne pause jmp pass
4.程序调试
4.1运行界面分析
程序运行后的主界面如图4-1,主界面第一行是欢迎语,第二行是作者,然后往下是操作说明,为使用者说明该程序的使用方法。
—11—
陕西师范大学汇编语言课程设计实验报告
图4-1 程序主界面
当用户按下ENTER键时,程序自动跳入到图4-2的界面,字母随机落
下,用户便可以开始打字练习了。练习只要按照说明来做就可以了。
图4-2 打字界面
—12—
共分享92篇相关文档