字典汇编程序.docx
文本预览下载声明
实验报告
实验目的
综合运用已学知识独立完成课程设计,熟练掌握汇编语言程序设计的基础知识。 实验题目
简易英英词典
功能要求:
1.单词及其英文解释的录入、修改和删除
录入的新单词,把它插入到相应的位置(和一般词典一样);
可修改单词英文解释;
删除单词及其英文解释;
2.查找:
(1) 输入不完整的字符串,会依顺序列出单词前缀和字符串相匹配的单词; 如输入:en
列出:enable, enabled, enact 等
(2) 查询某个单词英文解释(如 enable: to provide with the means or opportunity; to make
possible, practical, or easy),词库中不存在此单词,则提示找不到;
查询某个单词的同义词(如 accept: approve);
查询某个单词的反义词(如 win: lose);
3.显示:
界面美观
实验内容
一、数据文件结构说明
每个词义(共 4 个)占 64 字节,近义词占 64 字节,反义词占 64 字节,均以$结 束。
单词索引表置于文件尾,每个索引项中单词占 22 字节(包含结束符$),单词信息 块位置信息占 2 字节。单词索引表以空格组成的串为结束标志。
文件最末尾的 6 个字节,分别记录单词索引表中单词个数(包含空格组成的串), 单词索引表距文件首的字节数(依次为高位字、低位字)。
一、功能模块及主要宏、函数
1、查询模块
(1)、mycmps
功能:字符串比较
参数:mycmpstab[0] 字符串 1 偏移地址; mycmpstab[2] 字符串 2 偏移地址。 返回:str1 str2 CF= 1, ZF = 0; str1 = str2 ZF=1; str1 str2 CF= 0, ZF= 0。 (2)、halfsearch
功能:字符串查找(折半)
参数:halfsearchtab [0] 字符串缓冲区偏移地址;halfsearchtab [2] 字符串个数; halfsearchtab [4] 查询字符串偏移地址;halfsearchtab [6] 字符串长度。
返回:查找成功,CF=0,ax 返回匹配串的偏移地址。
查找不成功, CF=1,ax 返回查询串插入时偏移地址。
2、显示模块
(1)、displayword
功能:显示单词前缀和字符串相匹配的单词
参数:displaywordtab[0]
字符串缓冲区偏移地址;displaywordtab[2]
显示字符串个
数;
displaywordtab[4]
displaywordtab[8]
字符串长度; displaywordtab[6] 亮行位置;
返回光标位置; displaywordtab[10] 实际显示字符串个数。
返回:操作成功,displaywordtab[10] 返回实际显示字符串个数,光标位于 displaywordtab[8]设置位置。
(2)、readwordinfo
功能:读取单词解释、近义词、反义词信息
参数:readwordinfotab[0] 单词信息块位置;readwordinfotab[2] 存放信息块缓冲区 偏移地址; readwordinfotab[4] 单词信息块大小。
返回:操作成功,从文件中读取信息块于主存偏移地址为 readwordinfotab[2]缓冲区中。 (3)、showasentence
功能:显示一条单词信息
(4)、showwordinfo
功能:显示单词信息
参数:showwordinfotab[0] 单词索引表中该单词的偏移地址;
showwordinfotab[2] 单词信息缓冲区偏移地址;
showwordinfotab[4] 单词信息块大小;
showwordinfotab[6] 返回光标位置;
showwordinfotab[8] 实际显示单词信息条数。
返回:操作成功,显示单词信息,showwordinfotab[8] 返回实际显示单词信息条数, 光标位于 showwordinfotab[6]设置位置。
3、编辑模块
(1)、indexinsert
功能:在单词索引表中插入一个单词
参数:indexinserttab[0] 单词索引表偏移地址;indexinserttab[2] 单词索引表单词个数;
indexinserttab[4] 单词大小;indexinserttab[6] 插入单词的偏移地址; indexinserttab[8] 插入位置偏移地址。
返回:单词索引表中插入一个单词,完成索引表信息的维护。
(2)、indexdelete
功能:在单词索引表中删除一个单词
参数:indexdeletetab[0] 单词索引表偏移地址;indexdeletetab
显示全部