单词记忆测试器程序的设计说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
b6 db 1000h dup('$')
b9 db 'You do not know the following words , please remember them agian',0ah,0dh,'$' f1 db 'very good,congratulations to you',0ah,0dh,'$'
call zi4;输出不认识的单词
mov ah,02h;回车换行
mov dl,0dh
int 21h
mov ah,02h
mov dl,0ah
int 21h
call zi2;将不认识的单词存到B6所指单元
call zi2;将不认识的单词存到B6所指单元
m2:inc di
lea si,b6;将不认识的单词放到B6所指单元111111111111111111111
mov si,z;保留SI的地址
zi4 proc
push ax
push bx
push cx
push dx
push si
push di
lea dx,b9;输出不认识的单词
mov ah,09h
int 21h
lea dx,b6
mov ah,09h
int 21h
pop di
pop si
pop dx
pop cx
pop bx
pop ax
ret
zi4 endp
操作说明:一、输入单词:;1、提示输入单词,输入最少5个、最多255个英文单词,每个单词不超过20个字符。2、若直接回车,则结束单词输入,进入单词测试;3、输足20个字符,自动进入下一个单词的输入;4、不足20个字符个字符,按回车键进入下一个单词的输入。;二、单词记忆测试:1、从输入的第一个单词开始测试2、键入'y'(不分大小写)或'n',回答是否认识,不需按回车键确认,其它按键无效;
3、紧接着,没有提示,可按上移键或下移键循环测试;
4、按Esc键结束测试。三、计算单词识别率并显
示输出;四、提示是否进行下一组单词的输入和测试,键入'y'(不分大小写)或'n'选择是否继续,不需按回车键确认,其它按键无效。本程序在MASMPlus 1.2集成环境下通过编译,经过调试,运行正确。
Code Segment
Assume CS:Code,DS:Code
; -------------------------------------
; 功能:显示指定地址(Str_Addr)的字符串
; 入口:Str_Addr=字符串地址(要求在数据段)
; 用法: Output Str_Addr 用法举例:Output PromptStr)
Output MACRO Str_Addr
push ax
lea dx,Str_Addr
mov ah,9
int 21h
pop ax
EndM
; -------------------------------------
; 功能:输出一个字符
; 入口:dl=要显示的字符
Output_Chr proc Near
push ax
mov ah,02h
int 21h
pop ax
ret
Output_Chr endp
; -------------------------------------
; 功能:输出回车换行
Output_CTLF proc Near
push ax
push dx
mov ah,02h
mov dl,0dh
int 21h
mov dl,0ah
int 21h
pop dx
pop ax
ret
Output_CTLF endp
; -------------------------------------
; 功能:把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示
; 入口:AX=二进制数
; 出口:在当前光标位置显示转换后的ASCII码数字
Dec_ASCII Proc Near
push dx
push bx
push di
mov bx,10
lea di,@@Temp_Save[6]
mov BYTE ptr [di],'$'
dec di
@@Divide: xor dx,dx
div bx
or dl,30h
mov [di],dl
dec di
test ax,0ffffh
jnz @@Divide
inc di
push di
pop dx
mov ah,9
int 21h
pop di
pop bx
pop dx
ret
@@Temp_Save db 7 dup(?)
Dec_ASCII EndP
; -------------------------------------; 功能:键盘输入一个字符,若输入的是'y'或'n'(不分大小写),则显示并返回
; 入口:无
; 出口:若输入的是'y',进位标志置位;若输入的是'n',进位标志复位。
Yes_or_No proc Near
push dx
push ax
@@Input_Chr: mov ah,7 ;不带回显的键盘输入
int 21h
mov dl,al
and al,0dfh
cmp al,'Y'
jnz $+5
stc
jmp $+7