单词记忆测试器程序的设计说明Word文档下载推荐.docx

上传人:b****4 文档编号:15744318 上传时间:2022-11-15 格式:DOCX 页数:17 大小:19.78KB
下载 相关 举报
单词记忆测试器程序的设计说明Word文档下载推荐.docx_第1页
第1页 / 共17页
单词记忆测试器程序的设计说明Word文档下载推荐.docx_第2页
第2页 / 共17页
单词记忆测试器程序的设计说明Word文档下载推荐.docx_第3页
第3页 / 共17页
单词记忆测试器程序的设计说明Word文档下载推荐.docx_第4页
第4页 / 共17页
单词记忆测试器程序的设计说明Word文档下载推荐.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

单词记忆测试器程序的设计说明Word文档下载推荐.docx

《单词记忆测试器程序的设计说明Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单词记忆测试器程序的设计说明Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。

单词记忆测试器程序的设计说明Word文档下载推荐.docx

pushbx

pushcx

pushdx

pushsi

pushdi

leadx,b9;

输出不认识的单词

movah,09h

leadx,b6

popdi

popsi

popdx

popcx

popbx

popax

ret

zi4endp

操作说明:

一、输入单词:

;

1、提示输入单词,输入最少5个、最多255个英文单词,每个单词不超过20个字符。

2、若直接回车,则结束单词输入,进入单词测试;

3、输足20个字符,自动进入下一个单词的输入;

4、不足20个字符个字符,按回车键进入下一个单词的输入。

二、单词记忆测试:

1、从输入的第一个单词开始测试2、键入'

y'

(不分大小写)或'

n'

,回答是否认识,不需按回车键确认,其它按键无效;

3、紧接着,没有提示,可按上移键或下移键循环测试;

4、按Esc键结束测试。

三、计算单词识别率并显示输出;

四、提示是否进行下一组单词的输入和测试,键入'

选择是否继续,不需按回车键确认,其它按键无效。

本程序在MASMPlus1.2集成环境下通过编译,经过调试,运行正确。

CodeSegment

AssumeCS:

Code,DS:

Code

-------------------------------------

功能:

显示指定地址(Str_Addr)的字符串

入口:

Str_Addr=字符串地址(要求在数据段)

用法:

OutputStr_Addr用法举例:

OutputPromptStr)

OutputMACROStr_Addr

leadx,Str_Addr

movah,9

EndM

输出一个字符

dl=要显示的字符

Output_ChrprocNear

pushax

movah,02h

int21h

popax

ret

Output_Chrendp

输出回车换行

Output_CTLFprocNear

movdl,0dh

Output_CTLFendp

把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示

AX=二进制数

出口:

在当前光标位置显示转换后的ASCII码数字

Dec_ASCIIProcNear

pushdx

pushbx

movbx,10

leadi,@@Temp_Save[6]

movBYTEptr[di],'

decdi

@@Divide:

xordx,dx

divbx

ordl,30h

mov[di],dl

testax,0ffffh

jnz@@Divide

incdi

pushdi

popdx

movah,9

popdi

popbx

@@Temp_Savedb7dup(?

Dec_ASCIIEndP

键盘输入一个字符,若输入的是'

或'

(不分大小写),则显示并返回

若输入的是'

,进位标志置位;

,进位标志复位。

Yes_or_NoprocNear

@@Input_Chr:

movah,7;

不带回显的键盘输入

movdl,al

andal,0dfh

cmpal,'

Y'

jnz$+5

stc

jmp$+7

N'

jnz@@Input_Chr

clc

movah,2

Yes_or_NoEndp

Input_WordsProcNear;

输入一组单词

xorcl,cl;

输入的单词数目初值

leabx,Buffer;

数据缓冲区地址

movdi,bx

OutputPrompt_Str1;

提示输入单词

@@Input_Words:

cmpcl,255

jz@@Termanate;

限定最多255个单词

mov[bx.Recognise],No;

初始化识别标志

mov[bx.previous],di;

前一个节点地址

mov[bx.Next],Chrs+1;

每个单词最多字符数

leadx,[bx.Next];

键盘输入缓冲区地址

movah,0ah;

输入单词

movsi,dx

incsi

lodsb;

读入实际输入的字符个数,即单词长度

testal,al;

直接回车?

是,结束单词输入

inccl;

累计输入的单词数目

xorah,ah

addsi,ax

mov[si],'

;

使之能用dos功能调用9号功能显示这个字符串(单词)

mov[bx.Next],si;

下一个节点地址

movbx,si

callOutput_CTLF;

输出一个回车、换行

jmp@@Input_Words;

输入下一个单词

@@Termanate:

cmpcl,5

jb@@Input_Words;

限定最少5个单词

movWords,cl;

保存单词数目

leasi,Buffer;

movbx,[bx.previous]

mov[si.previous],bx;

把第一个节点的前一个节点地址指向最后一个节点

把最后一个节点的下一个节点地址指向第一个节点,形成循环链表

callOutput_CTLF

Input_WordsEndP

Test_WordsProcNear

leadx,[si.Next][2]

OutputPrompt_Str2;

要求回答是否认识这个词汇,回答字母不分大小写

@@Recognise:

or[si.Recognise],Yes

callYes_or_No

jc@@Up_Down

and[si.Recognise],No

@@Up_Down:

int16h

cmpah,KBEsc

jnz$+3

cmpah,KBUp

jnz@@Next_KBDown

movsi,[si.previous]

jmpTest_Words

@@Next_KBDown:

cmpah,KBDown

jnz@@Up_Down

movsi,[si.Next]

Test_WordsEndP

Statics_WordsProcNear;

计算单词识别率

movcl,Words;

取单词数

xorch,ch

movbx,[si.Next]

xorax,ax

@@L0:

addal,[si.Recognise];

累加识别率

loop@@L0

movbl,100

mulbl

divWords

OutputPrompt_Str3;

提示显示单词识别率

callDec_ASCII;

movdl,'

%'

callOutput_Chr;

显示输出一个字符

Statics_WordsEndP

Chrsequ20;

单词最多字符数

Yesequ1;

认识

Noequ0;

不认识

KBEscequ1;

Esc键扫描码

KBUpequ48H;

↑键扫描码

KBDownequ50H;

↓键扫描码

定义结构类型

Words_TableStruc;

单词链表

Recognisedb?

识别标志(是否认识这个单词)

previousdw?

Nextdw?

Words_TableEndS

Prompt_Str1db'

Pleaseinputwords:

'

13,10,'

“请输入单词”提示信息

Prompt_Str2db'

doyouknowit?

(y/n):

“是否认识单词”提示信息

Prompt_Str3db7,13,10,13,10,'

youranswerrateis:

$'

“单词识别率”提示信息

Prompt_Str4db7,13,10,13,10,'

Doyouwanttotestagain(y/n)?

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1