单词记忆测试器程序的设计说明Word文档格式.docx

上传人:b****6 文档编号:8583039 上传时间:2023-05-11 格式:DOCX 页数:17 大小:19.73KB
下载 相关 举报
单词记忆测试器程序的设计说明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_第6页
第6页 / 共17页
单词记忆测试器程序的设计说明Word文档格式.docx_第7页
第7页 / 共17页
单词记忆测试器程序的设计说明Word文档格式.docx_第8页
第8页 / 共17页
单词记忆测试器程序的设计说明Word文档格式.docx_第9页
第9页 / 共17页
单词记忆测试器程序的设计说明Word文档格式.docx_第10页
第10页 / 共17页
单词记忆测试器程序的设计说明Word文档格式.docx_第11页
第11页 / 共17页
单词记忆测试器程序的设计说明Word文档格式.docx_第12页
第12页 / 共17页
单词记忆测试器程序的设计说明Word文档格式.docx_第13页
第13页 / 共17页
单词记忆测试器程序的设计说明Word文档格式.docx_第14页
第14页 / 共17页
单词记忆测试器程序的设计说明Word文档格式.docx_第15页
第15页 / 共17页
单词记忆测试器程序的设计说明Word文档格式.docx_第16页
第16页 / 共17页
单词记忆测试器程序的设计说明Word文档格式.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单词记忆测试器程序的设计说明Word文档格式.docx

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

单词记忆测试器程序的设计说明Word文档格式.docx

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

jnzDivide

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'

jnzInput_Chr

clc

movah,2

Yes_or_NoEndp

Input_WordsProcNear;

输入一组单词

xorcl,cl;

输入的单词数目初值

leabx,Buffer;

数据缓冲区地址

movdi,bx

OutputPrompt_Str1;

提示输入单词

Input_Words:

cmpcl,255

jzTermanate;

限定最多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;

输出一个回车、换行

jmpInput_Words;

输入下一个单词

Termanate:

cmpcl,5

jbInput_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

jcUp_Down

and[si.Recognise],No

Up_Down:

int16h

cmpah,KBEsc

jnz$+3

cmpah,KBUp

jnzNext_KBDown

movsi,[si.previous]

jmpTest_Words

Next_KBDown:

cmpah,KBDown

jnzUp_Down

movsi,[si.Next]

Test_WordsEndP

Statics_WordsProcNear;

计算单词识别率

movcl,Words;

取单词数

xorch,ch

movbx,[si.Next]

xorax,ax

L0:

addal,[si.Recognise];

累加识别率

loopL0

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)?

“测试下一组单词?

”提示信息

Wordsdb0;

实际输入的单词数目

Press_Keydb7,13,10,13,10,'

Thecomplated.Pressanykeytoexit...$'

操作完成按任意键结束程序提示信息

Start:

pushcs

popds

popes;

使数据段、附加段与代码段同段

InputWord:

callInput_Words;

callTest_Words;

测试识别率

callStatics_Words;

OutputPrompt_Str4;

再测试一组单词?

jcInputWord

Exit_Proc:

OutputPress_Key;

提示操作完成,按任意键结束程序

movah,1

movah,4ch;

结束程序

Buffer:

数据缓冲区

CodeENDS

ENDStart;

编译到此结束

1. 

实现单词的录入(为使程序具有可演示性,单词不少于10个)。

2. 

单词根据按键控制依次在屏幕上显示,按键选择认识还是不认识,也可以直接进入下一个或者上一个。

3. 

单词背完后给出正确率。

AssumeCS:

cmpcl,10

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2