匯編程序設(shè)計(jì)報(bào)告-信息檢索_第1頁(yè)
匯編程序設(shè)計(jì)報(bào)告-信息檢索_第2頁(yè)
匯編程序設(shè)計(jì)報(bào)告-信息檢索_第3頁(yè)
匯編程序設(shè)計(jì)報(bào)告-信息檢索_第4頁(yè)
匯編程序設(shè)計(jì)報(bào)告-信息檢索_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

-.z.農(nóng)業(yè)大學(xué)課程報(bào)告學(xué)院:班級(jí):**:**:課程報(bào)告題目:信息檢索程序設(shè)計(jì)報(bào)告課程名稱:匯編語(yǔ)言和微機(jī)原理評(píng)閱成績(jī):評(píng)閱意見(jiàn):成績(jī)?cè)u(píng)定教師簽名:日期:年月日目錄摘要…………………3關(guān)鍵字………………3需求分析…………3具體分析………3各個(gè)流程的主要問(wèn)題及解決方法……………4程序源代碼………4程序運(yùn)行結(jié)果……………………7程序中仍存在的問(wèn)題……………8心得體會(huì)…………8參考文獻(xiàn)…………8信息檢索程序設(shè)計(jì)報(bào)告摘要:匯編語(yǔ)言是為了便于理解與記憶,將機(jī)器指令用助記符代替而形成的一種語(yǔ)言。由于匯編語(yǔ)言采用了助記符,因此,它比機(jī)器語(yǔ)言直觀,容易理解和記憶。匯編語(yǔ)言本質(zhì)上就是機(jī)器語(yǔ)言,因而容易產(chǎn)生運(yùn)行速度快、指令序列短小的高效率目標(biāo)程序。而該程序是利用匯編語(yǔ)言能根本實(shí)現(xiàn)信息檢索功能。該程序主要運(yùn)用了匯編程序設(shè)計(jì)的分支根本構(gòu)造,使程序能夠通過(guò)對(duì)承受編號(hào)進(jìn)展先行計(jì)算找到對(duì)應(yīng)表格中將要顯示信息字符串的起始位置,實(shí)現(xiàn)信息檢索的目的。接下來(lái)我將詳細(xì)承受程序設(shè)計(jì)過(guò)程關(guān)鍵詞:匯編語(yǔ)言;信息檢索;程序跳轉(zhuǎn)1需求分析完成一個(gè)信息檢索系統(tǒng)。在數(shù)據(jù)區(qū),有9個(gè)不同的信息,編號(hào)0-8,每個(gè)信息包括40個(gè)字符。從鍵盤(pán)承受0-8之間的一個(gè)編號(hào),然后在屏幕上顯示出相應(yīng)編號(hào)的信息容,按“q〞鍵退出。1.1具體分析開(kāi)場(chǎng)輸入一個(gè)字符輸出字符的對(duì)應(yīng)信息N錯(cuò)誤,請(qǐng)重新輸入N開(kāi)場(chǎng)輸入一個(gè)字符輸出字符的對(duì)應(yīng)信息N錯(cuò)誤,請(qǐng)重新輸入N是否在0-8之間Y是否為‘q’完畢YY1.2各個(gè)流程的主要問(wèn)題及解決方法[1]一、數(shù)據(jù)段中9段信息的定義。給數(shù)據(jù)分配足夠的空間,把一個(gè)編號(hào)中的信息給定40個(gè)字符,以便對(duì)數(shù)據(jù)的尋找。二、承受輸入的字符。32位windows控制臺(tái)應(yīng)用程序使用io32.lib子程序庫(kù)和io32.inc包含文件,其中有一個(gè)子程序readc,該程序的功能是輸入一個(gè)字符,并且存儲(chǔ)在ea*存放器中。三、把該字符與‘q’進(jìn)展比擬。利用比擬指令cmp來(lái)比擬輸入的字符與字符‘q’,該指令主要用的是數(shù)據(jù)的ASCⅡ碼的比擬。四、判斷該字符在0-8之間。同樣地,利用比擬指令cmp。但是需要比擬兩次,一次與0比擬,一次與8比擬。五、如何找到字符對(duì)應(yīng)的信息。該問(wèn)題是最關(guān)鍵的問(wèn)題。因?yàn)檫@9個(gè)信息是線性編址的,且每條信息的長(zhǎng)度也都是固定的40個(gè)字符。所以在查找過(guò)程中只要獲得第0號(hào)信息的地址,然后把輸入的數(shù)據(jù)與0比擬,經(jīng)過(guò)運(yùn)算找到對(duì)應(yīng)編號(hào)容的起始地址,然后輸出。六、輸入錯(cuò)誤和查詢完畢的跳轉(zhuǎn)。通過(guò)給程序設(shè)置標(biāo)簽,可結(jié)合cmp指令進(jìn)展條件的判斷,再運(yùn)用條件轉(zhuǎn)移指令,使程序跳轉(zhuǎn)到制定位置。也可直接使用無(wú)條件轉(zhuǎn)移指令jmp使程序跳轉(zhuǎn)到制定位置。2程序源代碼includeio32.inc.data ;數(shù)據(jù)段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個(gè)信息,每個(gè)信息40個(gè)字符errmsgbyte'error!inputagain!!!',0 ;輸入錯(cuò)誤提示信息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個(gè)信息顯示在屏幕上begin: movea*,offsetin_msgcalldispmsg ;在屏幕上顯示輸入提示信息callreadccalldispcrlf ;承受輸入字符并且換行cmpea*,'q' ;把輸入字符與‘q’比擬jedone ;如果相等,則程序跳轉(zhuǎn)到done位置movnum,ea* ;把數(shù)據(jù)放到num中cmpnum,'0' ;把輸入字符與‘0’比擬jlwrong ;如果比‘0’小,則程序跳轉(zhuǎn)到wrong位置cmpnum,'8' ;把輸入字符與‘8’比擬jgwrong ;如果比‘8’大,則程序跳轉(zhuǎn)到wrong位置moveb*,offsetmsg0 ;找到第0號(hào)信息的起始地址,放到eb*存放器中subnum,48 ;num是字符的ASCⅡ碼,所以要減去‘0’得到真正的偏移量,并存放在num中movea*,num ;把num放到ea*存放器中imulea*,40 ;用num乘以每條信息的長(zhǎng)度并存放在ea*中addeb*,ea* ;把0號(hào)信息地址加上真正的偏移地址得到所查詢編號(hào)信息的起始地址放入eb*中movea*,eb* calldispmsgcalldispcrlf ;顯示出所查詢的信息并換行movea*,offsetfinish_msg calldispmsgcalldispcrlf ;輸出查詢成功信息并換行jmpbegin ;一次查詢完畢,程序跳轉(zhuǎn)到begin處wrong: movea*,offseterrmsg calldispmsgcalldispcrlf ;輸出錯(cuò)誤提示信息并換行jmpbegin ;輸入錯(cuò)誤,程序跳轉(zhuǎn)到begin處done: e*it0endstart;程序完畢3程序運(yùn)行結(jié)果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程序中仍存在的問(wèn)題該程序暫時(shí)只能實(shí)現(xiàn)較為簡(jiǎn)單的信息檢索功能。并且在輸入的時(shí)候只能接收單個(gè)字符,如果數(shù)據(jù)段息再多一點(diǎn),則有些信息則不能被查詢到。該程序還能繼續(xù)改良,比方通過(guò)查詢*個(gè)關(guān)鍵字,就能檢索到該關(guān)鍵字所在的位置,以及該號(hào)位置里的信息。如果再繼續(xù)改良,它應(yīng)該實(shí)現(xiàn)的功能應(yīng)該是還要能增、刪、改信息,然后繼續(xù)查詢。5心得體會(huì)本次課程設(shè)計(jì)最開(kāi)場(chǎng)選了微機(jī)原理,可是經(jīng)過(guò)一上午的探索,發(fā)現(xiàn)還是無(wú)從下手。于是回來(lái)?yè)Q了的匯編語(yǔ)言。通過(guò)此

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論