微机原理课设(信息检索设计)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要
建立一个信息检索系统,每个序号对应一个不同的信息。通过键盘输入不同的指令序号,在电脑屏幕上会输出想要得到的信息。当超出序号范围的时候,屏幕会显示错误。程序还附加一个进一步查询的子程序。在输出信息后,可以对该信息进行查寻,当输入信息与序号相对应的信息完全相同时,会在屏幕上显示NO 字样,然后继续进行下一次的提示输入。
关键词: 信息检索子程序信息查寻计算机
1信息检索程序的设计
建立一个信息检索系统,然后通过键盘输入不同的指令,输出想要得到的信息。信息检索是为了满足用户的查询需求,比如在我们的图书馆中,想要找自己需要的资料,就可以通过信息检索系统去查询。通常的信息检索系统拥有一个很庞大的数据库区存放这些查询信息,而汇编语言就把这些信息都放在了数据段中,然后其他的查询操作全部放在代码段中,在代码段中设置好不同的数据信息显示对于不同的按键,即可通过按键查询到放在数据段中的信息,实现信息检索基本的功能。
1.1设计要求及分析
信息检索程序是能够实现相关的信息搜索并显示的程序。该题目要求:完成一个信息检索系统。在数据区,有9 个不同的信息,编号 0-8,每个信息包括40 个字符。从键盘接收0-8 之间的一个编号,然后再屏幕上显示出相应编号的信息内容,再从中检索出你指定的信息,若无则显示NO,按“Q”键退出。
这个题目对设计程序有几个要求,首先,要在数据区设定九个不同的信息,给它们编号,每个信息包括40个字符。然后,当键盘接受到编号时,程序运行,显示相应编号的信息内容。接着,检索出指定信息,如果没有,要显示NO。最后按下“Q”退出。
整个程序可分为两个检索,序号检索和指定内容检索。
初看题目,我觉得有些难点,比如出现信息内容后,如何检索;如何知道没有包含指定信息,并显示NO;如何对信息进行查验,搜索用户希望得到的信息等。根据要求,问题实现的思路是根据不同的输入序号来计算出相应的物理地址,实现不同信息的输出。对输入项进行判断,满足不同的条件,就会进行相应的计算,得出该序号下的信息的物理地址,进而输出结果。信息显示和其中的单个字符的输出编成子程序使的程序结构更加清晰。
2微机工作原理
计算机通过执行一个解题程序来完成一个具体问题的求解,而一个解题程序由若干条指令组成。因此,要了解计算机如何执行一个程序,必须首先了解控制器为完成一条指令所采取的控制步骤。控制器完成一条指令的全过程需要三个步骤:取指令、分析指令、执行指令。取指令时按照程序所规定的次序,从内存储器取出当前要执行的指令,并送控制器的指令寄存器中;分析指令是对所取的指令进行分析,即根据指令中的操作码确定计算机应进行什么操作;执行指令是根据指令分析的结果,由控制器发出完成操作所需要的一系列控制信号,以便指挥计算机有关部分完成这一操作,同时还要取下一条指令做好准备。于是就构成了执行指令序列的自动控制过程。
计算机在执行程序的过程中,先将程序中的语句翻译成计算机能够识别的机器指令,再根据指令的顺序逐条执行。计算机分析指令要完成的动作,执行相应的操作,直到遇到结束程序运行的指令为止。
PC机在运行时往往会遇到一些异常情况或某些请求,一旦发生,微处理器应该立即对它们做出响应,这就要求控制器具有处理这类问题的功能。通常当这些情况出现时,由相应部件或设备向微处理器发出“中断请求”信号,待执行完当前指令后,微处理器响应该请求,终止当前执行的程序,转去执行中断程序,以便处理这些请求。当处理完毕后,再返回原程序继续执行。
3程序流程图
3.1主流程图
主程序流程图,如图3-1所示。
3.2子程序流程图
3.2.1输入模块
输入模块流程图如图3-2所示。
图3-2输入模块流程图
程序中,使用DOS调用,显示一串字符串:
mov ah,9
int 21h
3.2.2输出模块
输出模块流程图如图3-3所示。
图3-3输出模块流程图
从键盘输入序号,并运用DOS调用将所得结果显示在屏幕上,随后返回输入序号提示语句。
4程序设计
4.1设计原理
在数据段里分配10个小数据段,每个小数据段分配40个字符,0-8这9个信息存储信息内容,另外一个输出错误信息,Q退出。取msg0的首地址作为整个信息段的首地址,根据输入的信号的不同,用序号乘40再加到首地址上找到相应序号的信息内容。
步骤为:
(1)开始,等待信息输入。
(2)输入序号,判断是否为Q。若是转(7),否则转(3)。
(3)判断是否满足要求的序号范围。满足转(4),否则转(6)。
(4)根据输入的序号,计算出相关信息的物理地址。
(5)输出结果,跳转到(2)。
(6)输出错误信息提示,转(2)。
(7)在输出的信息内,检索用户给出的内容,如无,则显示NO。
(8)结束,退出程序。
4.2最初的设想
我在最初看到课设题目时,尝试编写了一个简易的程序,为了与最终的源程序比较并且体现我的思考过程,现将此程序附下:
DATA SEGMENT
n0 db '1111111111111111111111111111111111111111'
n1 db '2222222222222222222222222222222222222222'
n2 db '3333333333333333333333333333333333333333'
n3 db '4444444444444444444444444444444444444444'
n4 db '5555555555555555555555555555555555555555'
n5 db '6666666666666666666666666666666666666666'
n6 db '7777777777777777777777777777777777777777'
n7 db '8888888888888888888888888888888888888888'
n8 db '9999999999999999999999999999999999999999'
Errmsg DB 'No! Input 0-8! Q or q , Exit $' ;输出错误信息