汇编语言---信息检索程序设计报告.docx
汇编语言-信息检索程序设计报告 、 *学院 课程设计报告 。 课程名称:计算机组成原理与汇编语言 报告题目:信息检索系统 学生姓名:* * * 所在学院:信息科学与工程学院 专业班级:计科1103 学号:81*54 114329*14655 1143*4815566 指导教师:* 2022 年 6月 26 日课程设计任务书 摘要 在计算机领域,去实现一个信息检索系统,可以说有数不清的方式。几乎各种编程语言均可满足要求,在实际中去用汇编语言实现这样一个检索系统是不现实的,因为有很多更好的方式,但是用汇编语言去实现这样一个功能却是对自己学习程度一个很好的检测。 信息检索程序,能较好的实现信息的检索和查询。程序使用汇编程序设计的循环和分支基本结构以及子程序的调用共同实现信息的查找显示效果。能够通过对接受编号进行线性计算找到对应表格中将要显示信息字符串的起始地址,然后调用字符输出子函数执行,选择相应数据段中的字符显示在屏幕的指定位置,以达到信息检索的目的。每输入一个编号,就把该编号对应的程序指定长度的信息输出显示,即通过直接识别接收信息编号间接实现对信息的查询和检索。把所有要查询的信息编号统存储于一个有序的表格中,每个表项链接着每个信息编号的相关信息。每个子信息间具有从属性的检索作用,实现信息的检索操作。 信息检索就是为了满足用户的查询需求,通常的信息检索系统拥有一个很庞大的数据库区存放这些查询信息,而汇编语言就把这些信息都放在了数据段中,然后其他的查询操作全部放在代码段中,在代码段中设置好不同的数据信息显示对于不同的按键,即可通过按键查询到放在数据段中的信息,实现信息检索基本的功能。通过对编号的识别和处理来实现信息的输出显示,程序开始设置一个起始地址,标识首个信息内容的起始地址。每当输入一个信息编号则可以得到编号对应具体信息的起始偏移地址,然后调用字符串输出函数将该信息输出。信息检索的过程呈现着树状的查询形式。 、 关键词:编号,检索,显示,查找 目录 一、课题分析 (2) 二、需求设计 (3) 1、功能描述 (3) 本设计的程序大致结构如下 (3) 程序中用到的dos及bios中断调用如下表 (3) 三、设计方案 (5) 1、主流程图 (5) 2、子程序模块设计 (6) PUT宏 (6) SHOW子程序 (6) 3、代码清单 (8) 4、程序调试结果及分析 (12) 主界面 (12) 信息1 (13) 输入错误信息界面 (14) 退出界面 (14) 四、结论与心得 (15) 五、参与文献 (16) 一、课题分析 1、该题目为信息检索程序。 2、在计算机领域,去实现一个信息检索系统,可以说有数不清的方式。几乎各种编程语言均可满足要求,在实际中去用汇编语言实现这样一个检索系统是不现实的,因为有很多更好的方式,但是用汇编语言去实现这样一个功能却是对自己学习程度一个很好的检测。 信息检索程序,能较好的实现信息的检索和查询。程序使用汇编程序设计的循环和分支基本结构以及子程序的调用共同实现信息的查找显示效果。能够通过对接受编号进行线性计算找到对应表格中将要显示信息字符串的起始地址,然后调用字符输出子函数执行,选择相应数据段中的字符显示在屏幕的指定位置,以达到信息检索的目的。每输入一个编号,就把该编号对应的程序指定长度的信息输出显示,即通过直接识别接收信息编号间接实现对信息的查询和检索。把所有要查询的信息编号统存储于一个有序的表格中,每个表项链接着每个信息编号的相关信息。每个子信息间具有从属性的检索作用,实现信息的检索操作。 信息检索就是为了满足用户的查询需求,通常的信息检索系统拥有一个很庞大的数据库区存放这些查询信息,而汇编语言就把这些信息都放在了数据段中,然后其他的查询操作全部放在代码段中,在代码段中设置好不同的数据信息显示对于不同的按键,即可通过按键查询到放在数据段中的信息,实现信息检索基本的功能。通过对编号的识别和处理来实现信息的输出显示,程序开始设置一个起始地址,标识首个信息内容的起始地址。每当输入一个信息编号则可以得到编号对应具体信息的起始偏移地址,然后调用字符串输出函数将该信息输出。信息检索的过程呈现着树状的查询形式。 3、由课程设计要求,完成一个歌曲检索程序。设数据区已经编好9首歌曲(英文歌曲,歌词不少于50词),编号 1-9,它们的段地址和偏移地址存放在数据段的跳转表SINGLIST中。从键盘接收1-9之间的一个编号,然后再屏幕上显示出相应编号的歌曲名称及歌词。请给出清楚的提示语句,如:Please input a number(19):。屏幕显示数据为:编号歌曲名歌词。 (1)输入的形式和输入值的范围:输入的形式有中文的、数字的、和字符的输入的,本设计需要输入的是数字,超过范围会显示错误信息。用户根据提示信息做相应的操作,按小写的字符q为退出程序。 (2)输出的形式:输出的数据就是在数据段中的定义9个数据变量,并且都是以字符串形式输出。 (3)程序所要到达到的功能:完成一个歌曲检索,请给出清楚的提示语句,如:Please input a number(19):。屏幕显示数据为:编号歌曲名歌词。 (4)从键盘接收1-9之间的一个编号,然后再屏幕上显示出相应编号的歌曲名称及歌词。请给出提示语句,如:Please input a number(19):。屏幕显示数据为:编号歌曲名歌词,并且9首歌曲(英文歌曲,歌词不少于50词)之间显示不同颜色的字符。按小写的字符q为退出程序。 (5)测试数据:(在程序中已给出)。 二、需求设计 1、功能描述 本设计的程序大致结构如下 数据段 数据段主要是对一些数据变量进行定义和赋值,包括MESS,主界面字符串;MAXS ,输入错误显示信息;MSG1MSG9,9首歌曲(英文歌曲,歌词不少于50词),编号 01-09的信息;MSSG,退出界面信息。 堆栈段 代码段包括了对数据的显示、对输入一个字符的操作、对多重分支的一些操作。 设计程序执行过程分析 汇编语言程序格式如下: 数据段:Data segment 数据变量定义 Data ends 堆栈段:Stack segment Stack ends 代码段:Code segment Code ends 程序中用到的dos及bios中断调用如下表 显示字符串: 入口参数:DX寄存器中存放待显示字符串的首地址 调用方式:将待显示字符串的首地址存入DX MOV AH,09H INT 21H 返回DOS 入口参数:无 调用方式:MOV AH,4CH INT 21H 出口参数:无 (4)在屏幕指定位置显示字符串 入口参数:AH=0AH,BH=页号,DH、DL中存放起始行号、列号,CX中存放字符串的长度,ES:BP=字符串的首地址。AL设定显示方式,其值可选择0、1、2、3.(如果为0或1,需要指定显示字符串的属性,如果为1或2,需要指出每个 字符的属性。) (5)键盘输入的字符: 入口参数:无 调用方式:MOV AH,01H INT 21H 出口参数:AL中存放输入字符的ASCII码。 三、设计方案 1、主流程图 系统的主要功能如图11所示,它是通过几个判断来实现相应的功能来完成本系统。 2、子程序模块设计 PUT宏 PUT MACRO X,Y LOCAL NEXT MOV AL,03H MOV AH,00H INT 10H MOV DX,SEG X MOV ES,DX MOV BP,OFFSET X MOV AL,'$' MOV SI,-1 NEXT: INC SI CMP AL,XSI JNZ NEXT MOV CX,SI MOV DX,0 MOV BL,Y MOV AL,1 MOV AH,13H INT 10H ENDM PUT宏通在屏幕指定位置显示字符串。 SHOW子程序 SHOW PROC NEAR MASTER: MOV AH,01H ;输入一个字符 INT 21H CMP AL,'1' ;多重分支 JZ PRINT1 CMP AL,'2' ;为2则跳转PRINT2 JZ PRINT2 CMP AL,'3' ;为3则跳转PRINT3 JZ PRINT3 CMP AL,'4' ;为4则跳转PRINT4 JZ PRINT4 CMP AL,'5' ;为5则跳转PRINT5 JZ PRINT5 CMP AL,'6' ;为6则跳转PRINT6 JZ PRINT6 CMP AL,'7' ;为7则跳转PRINT7 JZ PRINT7 CMP AL,'8' ;为8则跳转PRINT8 JZ PRINT8 CMP AL,'9' ;为9则跳转PRINT9 JZ PRINT9 CMP AL,'q' ;为q则退出 JZ EXIT CMP AL,'5' ;大于5则跳转到MAX JA MAX MAX: PUT MAXS,0BH ;显示输入错误信息 JMP MASTER ;跳转到MASTER PRINT1: PUT MSG1,0AH ;显示歌曲1的信息 JMP MASTER ;跳转到MASTER PRINT2: PUT MSG2,0BH ;显示歌曲2的信息 JMP MASTER ;跳转到MASTER PRINT3: PUT MSG3 ,0EH ;显示歌曲3的信息 JMP MASTER ;跳转到MASTER PRINT4: PUT MSG4,0CH ;显示歌曲4的信息 JMP MASTER ;跳转到MASTER PRINT5: PUT MSG5,0DH ;显示歌曲5的信息 JMP MASTER ;跳转到MASTER PRINT6: PUT MSG6,0DH ;显示歌曲6的信息 JMP MASTER ;跳转到MASTER PRINT7: PUT MSG7,0DH ;显示歌曲7的信息 JMP MASTER ;跳转到MASTER PRINT8: PUT MSG8,0DH ;显示歌曲8的信息 JMP MASTER ;跳转到MASTER PRINT9: PUT MSG9,0DH ;显示歌曲9的信息 JMP MASTER ;跳转到MASTER EXIT: ;退出 PUT MSSG,0EH RET SHOW ENDP 3、代码清单 PUT MACRO X,Y LOCAL NEXT MOV AL,03H MOV AH,00H INT 10H MOV DX,SEG X MOV ES,DX MOV BP,OFFSET X MOV AL,'$' MOV SI,-1 NEXT: INC SI CMP AL,XSI JNZ NEXT MOV CX,SI MOV DX,0 MOV BL,Y MOV AL,1 MOV AH,13H INT 10H ENDM DATAS SEGMENT ;此处输入数据段代码 MESS DB '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',13,10,13,10, '* welcome to enter my information index system ! *',13,10, 13,10, '* input a number(19),show the song; click q,exit syst *',13,10,13,10, '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',13,10,13,10,'Please input a number(19):$' MAXS DB ' Input error number! please input again: ',0DH,0AH,0DH,0AH,'Please input a number(19)$' ;输入错误显示信 息