![匯編程序設(shè)計報告-信息檢索.doc_第1頁](http://file.renrendoc.com/FileRoot1/2020-1/5/386092d8-286b-4c2e-a42f-4b6ab5ddad6a/386092d8-286b-4c2e-a42f-4b6ab5ddad6a1.gif)
![匯編程序設(shè)計報告-信息檢索.doc_第2頁](http://file.renrendoc.com/FileRoot1/2020-1/5/386092d8-286b-4c2e-a42f-4b6ab5ddad6a/386092d8-286b-4c2e-a42f-4b6ab5ddad6a2.gif)
![匯編程序設(shè)計報告-信息檢索.doc_第3頁](http://file.renrendoc.com/FileRoot1/2020-1/5/386092d8-286b-4c2e-a42f-4b6ab5ddad6a/386092d8-286b-4c2e-a42f-4b6ab5ddad6a3.gif)
![匯編程序設(shè)計報告-信息檢索.doc_第4頁](http://file.renrendoc.com/FileRoot1/2020-1/5/386092d8-286b-4c2e-a42f-4b6ab5ddad6a/386092d8-286b-4c2e-a42f-4b6ab5ddad6a4.gif)
![匯編程序設(shè)計報告-信息檢索.doc_第5頁](http://file.renrendoc.com/FileRoot1/2020-1/5/386092d8-286b-4c2e-a42f-4b6ab5ddad6a/386092d8-286b-4c2e-a42f-4b6ab5ddad6a5.gif)
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
湖南農(nóng)業(yè)大學(xué)課程報告學(xué) 院: 班 級: 姓 名: 學(xué) 號:課程報告題目:信息檢索程序設(shè)計報告課程名稱:匯編語言和微機原理評閱成績:評閱意見:成績評定教師簽名:日期: 年 月 日目 錄摘要 3關(guān)鍵字 31. 需求分析 31.1 具體分析 31.2 各個流程的主要問題及解決方法 42. 程序源代碼 43. 程序運行結(jié)果 74. 程序中仍存在的問題 85. 心得體會 86. 參考文獻(xiàn) 8信息檢索程序設(shè)計報告摘 要:匯編語言是為了便于理解與記憶,將機器指令用助記符代替而形成的一種語言。由于匯編語言采用了助記符,因此,它比機器語言直觀,容易理解和記憶。匯編語言本質(zhì)上就是機器語言,因而容易產(chǎn)生運行速度快、指令序列短小的高效率目標(biāo)程序。而該程序是利用匯編語言能基本實現(xiàn)信息檢索功能。該程序主要運用了匯編程序設(shè)計的分支基本結(jié)構(gòu),使程序能夠通過對接受編號進(jìn)行先行計算找到對應(yīng)表格中將要顯示信息字符串的起始位置,實現(xiàn)信息檢索的目的。接下來我將詳細(xì)接受程序設(shè)計過程關(guān)鍵詞:匯編語言;信息檢索;程序跳轉(zhuǎn)1 需求分析 完成一個信息檢索系統(tǒng)。在數(shù)據(jù)區(qū),有9個不同的信息,編號0-8,每個信息包括40個字符。從鍵盤接受0-8之間的一個編號,然后在屏幕上顯示出相應(yīng)編號的信息內(nèi)容,按“q”鍵退出。1.1 具體分析開始輸入一個字符輸出字符的對應(yīng)信息N錯誤,請重新輸入N是否在0-8之間Y是否為q結(jié)束該程序主要實現(xiàn)的是信息檢索的基本功能。那么首先要把信息編號為0-8的9個信息分別定義在地址連續(xù)的數(shù)據(jù)段中,通過鍵盤輸入接受編號,然后通過計算得到對應(yīng)編號中信息內(nèi)容的起始地址,最后在屏幕上輸出所查詢到的內(nèi)容。程序流程圖如下:Y1.2 各個流程的主要問題及解決方法1一、數(shù)據(jù)段中9段信息的定義。給數(shù)據(jù)分配足夠的空間,把一個編號中的信息給定40個字符,以便對數(shù)據(jù)的尋找。二、接受輸入的字符。32位windows控制臺應(yīng)用程序使用io32.lib子程序庫和io32.inc包含文件,其中有一個子程序readc,該程序的功能是輸入一個字符,并且存儲在eax寄存器中。三、把該字符與q進(jìn)行比較。利用比較指令cmp來比較輸入的字符與字符q,該指令主要用的是數(shù)據(jù)的ASC碼的比較。四、判斷該字符在0-8之間。同樣地,利用比較指令cmp。但是需要比較兩次,一次與0比較,一次與8比較。五、如何找到字符對應(yīng)的信息。該問題是最關(guān)鍵的問題。因為這9個信息是線性編址的,且每條信息的長度也都是固定的40個字符。所以在查找過程中只要獲得第0號信息的地址,然后把輸入的數(shù)據(jù)與0比較,經(jīng)過運算找到對應(yīng)編號內(nèi)容的起始地址,然后輸出。六、輸入錯誤和查詢結(jié)束的跳轉(zhuǎn)。通過給程序設(shè)置標(biāo)簽,可結(jié)合cmp指令進(jìn)行條件的判斷,再運用條件轉(zhuǎn)移指令,使程序跳轉(zhuǎn)到制定位置。也可直接使用無條件轉(zhuǎn)移指令jmp使程序跳轉(zhuǎn)到制定位置。2 程序源代碼include io32.inc.data;數(shù)據(jù)段in_msg byte Input the num(0-8;q for exit):,0;輸入提示信息finish_msg byte Search finish!,0;查詢完成提示信息msg0 db liuying 0,0msg1 db xionghong 1,0msg2 db fuzhenli 2,0msg3 db zhangcuiting 3,0msg4 db zhangyuqing 4,0msg5 db tianziyan 5,0msg6 db liwei 6,0msg7 db xuping 7,0msg8 db wangjiamin 8,0 ;9個信息,每個信息40個字符errmsg byte error! input again!,0;輸入錯誤提示信息num dword ?;number;用于存放輸入字符的變量.code;代碼段start:mov eax,offset msg0call dispmsgcall dispcrlfmov eax,offset msg1call dispmsgcall dispcrlfmov eax,offset msg2call dispmsgcall dispcrlfmov eax,offset msg3call dispmsgcall dispcrlfmov eax,offset msg4call dispmsgcall dispcrlfmov eax,offset msg5call dispmsgcall dispcrlfmov eax,offset msg6call dispmsgcall dispcrlfmov eax,offset msg7call dispmsgcall dispcrlfmov eax,offset msg8call dispmsgcall dispcrlf;首先把9個信息顯示在屏幕上begin:mov eax,offset in_msgcall dispmsg;在屏幕上顯示輸入提示信息call readccall dispcrlf;接受輸入字符并且換行cmp eax,q;把輸入字符與q比較je done;如果相等,則程序跳轉(zhuǎn)到done位置mov num,eax;把數(shù)據(jù)放到num中cmp num,0;把輸入字符與0比較jl wrong;如果比0小,則程序跳轉(zhuǎn)到wrong位置cmp num,8;把輸入字符與8比較jg wrong ;如果比8大,則程序跳轉(zhuǎn)到wrong位置mov ebx,offset msg0;找到第0號信息的起始地址,放到ebx寄存器中sub num,48;num是字符的ASC碼,所以要減去0得到真正的偏移量,并存放在num中mov eax,num;把num放到eax寄存器中imul eax,40;用num乘以每條信息的長度并存放在eax中add ebx,eax;把0號信息地址加上真正的偏移地址得到所查詢編號信息的起始地址放入ebx中mov eax,ebxcall dispmsgcall dispcrlf;顯示出所查詢的信息并換行mov eax,offset finish_msgcall dispmsgcall dispcrlf;輸出查詢成功信息并換行jmp begin;一次查詢結(jié)束,程序跳轉(zhuǎn)到begin處wrong:mov eax,offset errmsgcall dispmsgcall dispcrlf;輸出錯誤提示信息并換行jmp begin;輸入錯誤,程序跳轉(zhuǎn)到begin處done:exit 0end start;程序結(jié)束3 程序運行結(jié)果msg0 db liuying 0,0msg1 db xionghong 1,0msg2 db fuzhenli 2,0msg3 db zhangcuiting 3,0msg4 db zhangyuqing 4,0msg5 db tianziyan 5,0msg6 db liwei 6,0msg7 db xuping 7,0msg8 db wangjiamin 8,0Input the num(0-8;q for exit):0liuying 0Search finish!Input the num(0-8;q for exit):6liwei 6Search finish!Input the num(0-8;q for exit):9error! input again!Input the num(0-8;q for exit):terror! input again!Input the num(0-8;q for exit):q4 程序中仍存在的問題該程序暫時只能實現(xiàn)較為簡單的信息檢索功能。并且在輸入的時候只能接收單個字符,如果數(shù)據(jù)段中信息再多一點,那么有些信息則不能被查詢到。該程序還能繼續(xù)改進(jìn),比如通過查詢某個關(guān)鍵字,就能檢索到該關(guān)鍵字所在的位置,以及該號位置里的信息。如果再繼續(xù)改進(jìn),它應(yīng)該實現(xiàn)的功能應(yīng)該是還要能增、刪、改信息,然后繼續(xù)查詢。5 心得體會本次課程設(shè)計最開始選了微機原理,可是經(jīng)過一上午的探索,發(fā)現(xiàn)還是無從下手。于是回來換了的匯編語言。通過此次課程設(shè)計,我初步了解和熟悉了匯編語言的編寫流程及基本指令的用法。編寫一個程序首先要把流程思路想
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 部編初中歷史八下第1課中華人民共和國成立教案
- 2025年全球及中國大型不銹鋼鑄件行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球化妝品級枯草菌脂肽鈉行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球光纖導(dǎo)管靜脈激光治療行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國銅纜高速連接器行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025國際(非獨占)商標(biāo)使用許可合同
- 2025農(nóng)業(yè)種植生產(chǎn)產(chǎn)銷合同書
- 餐飲業(yè)合同年
- 2025室內(nèi)裝修設(shè)計合同范本
- 房屋租賃續(xù)簽合同模板
- 2025年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 醫(yī)保政策與健康管理培訓(xùn)計劃
- 策略與博弈杜塔中文版
- 無人化農(nóng)場項目可行性研究報告
- 2024屆上海市金山區(qū)高三下學(xué)期二模英語試題(原卷版)
- 學(xué)生春節(jié)安全教育
- 2024-2025年校長在教研組長和備課組長會議上講話
- 2025屆江蘇省常州市高級中學(xué)高三第二次模擬考試語文試卷含解析
- 高三日語一輪復(fù)習(xí)助詞「で」的用法課件
- 2024-2030年中國銣銫及其化合物行業(yè)深度調(diào)研及投資戰(zhàn)略分析報告
- 散貨物流行業(yè)市場調(diào)研分析報告
評論
0/150
提交評論