汇编程序设计报告-信息检索_第1页
汇编程序设计报告-信息检索_第2页
汇编程序设计报告-信息检索_第3页
汇编程序设计报告-信息检索_第4页
汇编程序设计报告-信息检索_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z.农业大学课程报告学院:班级:**:**:课程报告题目:信息检索程序设计报告课程名称:汇编语言和微机原理评阅成绩:评阅意见:成绩评定教师签名:日期:年月日目录摘要…………………3关键字………………3需求分析…………3具体分析………3各个流程的主要问题及解决方法……………4程序源代码………4程序运行结果……………………7程序中仍存在的问题……………8心得体会…………8参考文献…………8信息检索程序设计报告摘要:汇编语言是为了便于理解与记忆,将机器指令用助记符代替而形成的一种语言。由于汇编语言采用了助记符,因此,它比机器语言直观,容易理解和记忆。汇编语言本质上就是机器语言,因而容易产生运行速度快、指令序列短小的高效率目标程序。而该程序是利用汇编语言能根本实现信息检索功能。该程序主要运用了汇编程序设计的分支根本构造,使程序能够通过对承受编号进展先行计算找到对应表格中将要显示信息字符串的起始位置,实现信息检索的目的。接下来我将详细承受程序设计过程关键词:汇编语言;信息检索;程序跳转1需求分析完成一个信息检索系统。在数据区,有9个不同的信息,编号0-8,每个信息包括40个字符。从键盘承受0-8之间的一个编号,然后在屏幕上显示出相应编号的信息容,按“q〞键退出。1.1具体分析开场输入一个字符输出字符的对应信息N错误,请重新输入N开场输入一个字符输出字符的对应信息N错误,请重新输入N是否在0-8之间Y是否为‘q’完毕YY1.2各个流程的主要问题及解决方法[1]一、数据段中9段信息的定义。给数据分配足够的空间,把一个编号中的信息给定40个字符,以便对数据的寻找。二、承受输入的字符。32位windows控制台应用程序使用io32.lib子程序库和io32.inc包含文件,其中有一个子程序readc,该程序的功能是输入一个字符,并且存储在ea*存放器中。三、把该字符与‘q’进展比拟。利用比拟指令cmp来比拟输入的字符与字符‘q’,该指令主要用的是数据的ASCⅡ码的比拟。四、判断该字符在0-8之间。同样地,利用比拟指令cmp。但是需要比拟两次,一次与0比拟,一次与8比拟。五、如何找到字符对应的信息。该问题是最关键的问题。因为这9个信息是线性编址的,且每条信息的长度也都是固定的40个字符。所以在查找过程中只要获得第0号信息的地址,然后把输入的数据与0比拟,经过运算找到对应编号容的起始地址,然后输出。六、输入错误和查询完毕的跳转。通过给程序设置标签,可结合cmp指令进展条件的判断,再运用条件转移指令,使程序跳转到制定位置。也可直接使用无条件转移指令jmp使程序跳转到制定位置。2程序源代码includeio32.inc.data ;数据段in_msgbyte'Inputthenum(0-8;qfore*it):',0;输入提示信息finish_msgbyte'Searchfinish!',0 ;查询完成提示信息msg0db'liuying0',0msg1db'*ionghong1',0msg2db'fuzhenli2',0msg3db'zhangcuiting3',0msg4db'zhangyuqing4',0msg5db'tianziyan5',0msg6db'liwei6',0msg7db'*uping7',0msg8db'wangjiamin8',0;9个信息,每个信息40个字符errmsgbyte'error!inputagain!!!',0 ;输入错误提示信息numdword" ;number ;用于存放输入字符的变量.code ;代码段start: movea*,offsetmsg0 calldispmsg calldispcrlf movea*,offsetmsg1 calldispmsg calldispcrlf movea*,offsetmsg2 calldispmsg calldispcrlf movea*,offsetmsg3 calldispmsg calldispcrlf movea*,offsetmsg4 calldispmsg calldispcrlf movea*,offsetmsg5 calldispmsg calldispcrlf movea*,offsetmsg6 calldispmsg calldispcrlf movea*,offsetmsg7 calldispmsg calldispcrlf movea*,offsetmsg8 calldispmsgcalldispcrlf ;首先把9个信息显示在屏幕上begin: movea*,offsetin_msgcalldispmsg ;在屏幕上显示输入提示信息callreadccalldispcrlf ;承受输入字符并且换行cmpea*,'q' ;把输入字符与‘q’比拟jedone ;如果相等,则程序跳转到done位置movnum,ea* ;把数据放到num中cmpnum,'0' ;把输入字符与‘0’比拟jlwrong ;如果比‘0’小,则程序跳转到wrong位置cmpnum,'8' ;把输入字符与‘8’比拟jgwrong ;如果比‘8’大,则程序跳转到wrong位置moveb*,offsetmsg0 ;找到第0号信息的起始地址,放到eb*存放器中subnum,48 ;num是字符的ASCⅡ码,所以要减去‘0’得到真正的偏移量,并存放在num中movea*,num ;把num放到ea*存放器中imulea*,40 ;用num乘以每条信息的长度并存放在ea*中addeb*,ea* ;把0号信息地址加上真正的偏移地址得到所查询编号信息的起始地址放入eb*中movea*,eb* calldispmsgcalldispcrlf ;显示出所查询的信息并换行movea*,offsetfinish_msg calldispmsgcalldispcrlf ;输出查询成功信息并换行jmpbegin ;一次查询完毕,程序跳转到begin处wrong: movea*,offseterrmsg calldispmsgcalldispcrlf ;输出错误提示信息并换行jmpbegin ;输入错误,程序跳转到begin处done: e*it0endstart;程序完毕3程序运行结果msg0db'liuying0',0msg0db'liuying0',0msg1db'*ionghong1',0msg2db'fuzhenli2',0msg3db'zhangcuiting3',0msg4db'zhangyuqing4',0msg5db'tianziyan5',0msg6db'liwei6',0msg7db'*uping7',0msg8db'wangjiamin8',0Inputthenum(0-8;qfore*it):0liuying0Searchfinish!Inputthenum(0-8;qfore*it):6liwei6Searchfinish!Inputthenum(0-8;qfore*it):9error!inputagain!!!Inputthenum(0-8;qfore*it):terror!inputagain!!!Inputthenum(0-8;qfore*it):q4程序中仍存在的问题该程序暂时只能实现较为简单的信息检索功能。并且在输入的时候只能接收单个字符,如果数据段息再多一点,则有些信息则不能被查询到。该程序还能继续改良,比方通过查询*个关键字,就能检索到该关键字所在的位置,以及该号位置里的信息。如果再继续改良,它应该实现的功能应该是还要能增、删、改信息,然后继续查询。5心得体会本次课程设计最开场选了微机原理,可是经过一上午的探索,发现还是无从下手。于是回来换了的汇编语言。通过此

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论