单词记忆测试器程序的设计说明

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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所指单元1111

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

相关文档
最新文档