字典汇编程序(共33页).doc
《字典汇编程序(共33页).doc》由会员分享,可在线阅读,更多相关《字典汇编程序(共33页).doc(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上实验报告实验目的 综合运用已学知识独立完成课程设计,熟练掌握汇编语言程序设计的基础知识。实验题目简易英英词典功能要求:1.单词及其英文解释的录入、修改和删除(1) 录入的新单词,把它插入到相应的位置(和一般词典一样);(2) 可修改单词英文解释;(3) 删除单词及其英文解释;2.查找:(1) 输入不完整的字符串,会依顺序列出单词前缀和字符串相匹配的单词;如输入:en列出:enable, enabled, enact等(2) 查询某个单词英文解释(如enable: to provide with the means or opportunity; to make pos
2、sible, practical, or easy),词库中不存在此单词,则提示找不到;(3) 查询某个单词的同义词(如accept: approve);(4) 查询某个单词的反义词(如win: lose);3.显示:界面美观实验内容一、数据文件结构说明1、每个词义(共4个)占64字节,近义词占64字节,反义词占64字节,均以$结束。2、单词索引表置于文件尾,每个索引项中单词占22字节(包含结束符$),单词信息块位置信息占2字节。单词索引表以空格组成的串为结束标志。3、文件最末尾的6个字节,分别记录单词索引表中单词个数(包含空格组成的串),单词索引表距文件首的字节数(依次为高位字、低位字)。一
3、、功能模块及主要宏、函数1、查询模块(1)、mycmps功能:字符串比较参数:mycmpstab0 字符串1偏移地址; mycmpstab2 字符串2偏移地址。返回:str1 str2 CF= 0, ZF= 0。(2)、halfsearch功能:字符串查找(折半)参数:halfsearchtab 0 字符串缓冲区偏移地址;halfsearchtab 2 字符串个数; halfsearchtab 4 查询字符串偏移地址;halfsearchtab 6 字符串长度。返回:查找成功,CF=0,ax 返回匹配串的偏移地址。 查找不成功, CF=1,ax返回查询串插入时偏移地址。2、显示模块(1)、di
4、splayword功能:显示单词前缀和字符串相匹配的单词参数:displaywordtab0 字符串缓冲区偏移地址;displaywordtab2 显示字符串个数; displaywordtab4 字符串长度; displaywordtab6 亮行位置; displaywordtab8 返回光标位置; displaywordtab10 实际显示字符串个数。返回:操作成功,displaywordtab10 返回实际显示字符串个数,光标位于displaywordtab8设置位置。(2)、readwordinfo功能:读取单词解释、近义词、反义词信息参数:readwordinfotab0 单词信息块
5、位置;readwordinfotab2 存放信息块缓冲区偏移地址; readwordinfotab4 单词信息块大小。返回:操作成功,从文件中读取信息块于主存偏移地址为readwordinfotab2缓冲区中。(3)、showasentence功能:显示一条单词信息(4)、showwordinfo功能:显示单词信息参数:showwordinfotab0 单词索引表中该单词的偏移地址; showwordinfotab2 单词信息缓冲区偏移地址; showwordinfotab4 单词信息块大小; showwordinfotab6 返回光标位置; showwordinfotab8 实际显示单词信息
6、条数。返回:操作成功,显示单词信息,showwordinfotab8 返回实际显示单词信息条数,光标位于showwordinfotab6设置位置。3、编辑模块(1)、indexinsert功能:在单词索引表中插入一个单词参数:indexinserttab0 单词索引表偏移地址;indexinserttab2 单词索引表单词个数; indexinserttab4 单词大小;indexinserttab6 插入单词的偏移地址; indexinserttab8 插入位置偏移地址。返回:单词索引表中插入一个单词,完成索引表信息的维护。(2)、indexdelete功能:在单词索引表中删除一个单词参数:
7、indexdeletetab0 单词索引表偏移地址;indexdeletetab2 单词索引表单词个数; indexdeletetab4 删除位置偏移地址。返回:单词索引表中删除一个单词,完成索引表信息的维护。(3)、inputnewinfo功能:接受新的单词信息哑元:bufad 存放新的单词信息的缓冲区偏移地址; maxindex 最大下标值,信息中字符个数减结束符减1; charperline 输入时每行字符数; specialpoint 键入BackSpace需特殊处理的点; wndb 窗口属性; begincursor 接受字符起始光标位置。(4)、appdnewword功能:添加新的
8、单词(5)、editnotfind功能:完成未找到匹配单词时的编辑(添加操作)参数:editnotfindtab 单词插入索引表位置偏移地址。(6)、delallwordinfo功能:删除一个单词。(7)、editfind功能:完成找到匹配单词时的编辑(修改、删除操作)参数:editfindtab单词插入索引表位置偏移地址。4、文件处理模块(1)、createfile 功能:创建文件 参数:createfiletab0 ASCIZ串偏移地址; createfiletab2 文件属性; createfiletab4 出错信息偏移地址; createfiletab6 返回文件代号。 返回:操作成功
9、,createfiletab6 返回文件代号,CF=0。 操作不成功, 输出提示信息,CF=1。(2)、openfile功能:打开文件 参数:openfiletab 0 ASCIZ串偏移地址;openfiletab 2 出错信息偏移地址。 返回:操作成功,handle返回文件代号,CF=0。 操作不成功, 输出提示信息,CF=1。(3)、movfp功能:移动文件指针 参数:handle 文件代号; movfptab 0 移动方式码;movfptab 2 偏移字节数(高位);movfptab 4 偏移字节数(低位);movfptab 6 出错信息偏移地址。 返回:操作成功, CF=0。 操作不成
10、功,输出提示信息,CF=1。(4)、wrfile功能:读/写文件 参数:handle 文件代号;wrfiletab 0 读/写;wrfiletab 2 数据缓冲区偏移地址;wrfiletab 4 读/写字节数;wrfiletab 6 出错信息偏移地址。 返回:操作成功, CF=0。 操作不成功,输出提示信息,CF=1。5、绘制界面模块(1)、drawwnd功能:绘制窗口哑元:attribute 窗口属性;wndleftr 左上角行号;wndleftc 左上角列号;wndrightr 右上角行号;wndrihgtc 右上角行号。(2)、setcursor功能:设置光标位置哑元:page 页号;
11、row 行号; column 列号; addp 页号增量; addr 行号增量; addc 列号增量。(3)、interface功能:绘制界面(4)、operdeclare功能:显示操作说明二、程序流程图三、源程序dseg segment data indexelemsize equ 24 wordmaxsize equ 23 wordinfosize equ 64 wordmeaningsize equ 384 Up equ 48h Down equ 50h Left equ 4Bh BackSpace equ 08h KeyEsc equ 1bh Dollar equ 24h Enter
12、equ 0dh dictionary db Weeds Dictionary 1.0$ inpmsg db Input the word:$ indexmsg db Index:$ welcomemsg db Welcome to use Weeds Dictionary 1.0$ pathmsg db Please input the path of words.dat$ escmsg db Esc: exit$ entermsg db Enter: edit$ bslmsg db BackSpace and Left: step back$ upmsg db Up: line up$ do
13、wnmsg db Down: line down$ meaningmsg db Meaning:$ synonymsmsg db Synonyms:$ antonymmsg db Antonym:$ nofindmsg0 db NO FIND! _$ nofindmsg1 db PRESS ENTER TO EDIT THE WORD! _$ editnotfindmsg db Append(A) $ appendmsg db Append:$ editfindmsg db Modify(M) Delete(D) $ modifymsg db Modify:$ deletemsg db Del
14、ete:$ optionmsg0 db Word(W) $ optionmsg1 db Meaning(M) Synonyms(S) $ optionmsg2 db Antonym(A) $ optretmsg db Return(R): $ operfinmsg db Operation has finished! *_*$ retmsg db Enter R or r to return: $ nosynonymsmsg db no synonyms$ noantonymmsg db no antonym$ meaningnomsg db Meaning NO.(14): $ savech
15、gmsg db Save the information? Y/N $ delmsmsg db Delete the information? Y/N $ delnotemsg db LOSE ALL WORDS INFORMATION: Y/N $ mdfywdmsg db !_! REALLY TO DO THAT: Y/N $ crefilmsg db ERROR: createfile()$ opefilmsg db ERROR: openfile()$ movfpmsg db ERROR: movfp()$ wrfilemsg db ERROR: wrfile()$ clsfilms
16、g db ERROR: closefile()$ defaultpath db c:weeddic, 0 wndone1r db 0 wndone1c db 0 wndone2r db 24 wndone2c db 79 wndoneb db 96h barone1r db 1 barone1c db 0 barone2r db 1 barone2c db 79 baroneb db 70h bartwo1r db 2 bartwo1c db 31 bartwo2r db 24 bartwo2c db 31 bartwob db 70h wndtwo1r db 4 wndtwo1c db 3
17、wndtwo2r db 5 wndtwo2c db 26 wndtwob db 0fch wndthree1r db 9 wndthree1c db 3 wndthree2r db 22 wndthree2c db 26 wndthreeb db 0f2h wndfour1r db 4 wndfour1c db 36 wndfour2r db 22 wndfour2c db 75 wndfourb db 0fdh wndwel1r db 10 wndwel1c db 20 wndwel2r db 14 wndwel2c db 57 wndwelb db 0e0h wndeditb db 0f5
18、h wndsaveb db 0edh wndeditnb db 0f6h mycmpstab dw 2 dup(?);str1ad str2ad halfsearchtab dw 4 dup(?);wordsad tablen searchwordad wordsize indexinserttab dw 5 dup(?);indexad indexlen wordsize inswordad insertad indexdeletetab dw 4 dup(?);indexad indexlen wordsize deletead displaywordtab dw 7 dup(?);wor
19、darrad displaynum wordsize lightline retcursor realdispnum showwordinfotab dw 5 dup(?);wordad wordinfoad wordinfosize nonemptynum returncursor readwordinfotab dw ? ;wordplace inputpath db 37, 0 pathname db 37 dup(?) handle dw ? ;share createfiletab dw 4 dup(?) ;ascizad fileattribute msgad rethandle
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 字典 汇编程序 33
限制150内