匯編語言實(shí)現(xiàn)文本編輯器14頁_第1頁
匯編語言實(shí)現(xiàn)文本編輯器14頁_第2頁
匯編語言實(shí)現(xiàn)文本編輯器14頁_第3頁
匯編語言實(shí)現(xiàn)文本編輯器14頁_第4頁
匯編語言實(shí)現(xiàn)文本編輯器14頁_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、學(xué) 號:0120710340522武漢理工大學(xué) 匯編語言課程設(shè)計(jì)題 目文本方式下字處理程序的設(shè)計(jì)與實(shí)現(xiàn)學(xué) 院計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院專 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班 級計(jì)算機(jī)科學(xué)與技術(shù)0705姓 名黃威指導(dǎo)教師李春林2010 年1 月15 日課程設(shè)計(jì)任務(wù)書學(xué)生姓名: 黃威 專業(yè)班級:計(jì)算機(jī)科學(xué)與技術(shù)0705 指導(dǎo)教師: 李春林 工作單位:計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 題目: 文本方式下字處理程序的設(shè)計(jì)與實(shí)現(xiàn)初始條件:理論:完成了匯編語言程序設(shè)計(jì)課程,對微機(jī)系統(tǒng)結(jié)構(gòu)和80系列指令系統(tǒng)有了較深入的理解,已掌握了匯編語言程序設(shè)計(jì)的基本方法和技巧。實(shí)踐:完成了匯編語言程序設(shè)計(jì)的4個(gè)實(shí)驗(yàn),熟悉了匯編語言程序的設(shè)計(jì)環(huán)境并掌握

2、了匯編語言程序的調(diào)試方法。要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說明書撰寫等具體要求)理解鍵盤和顯示器接口的工作原理,掌握BIOS鍵盤和顯示器中斷調(diào)用的使用方法,掌握復(fù)雜內(nèi)存數(shù)據(jù)結(jié)構(gòu)的定義和管理方法。具體的設(shè)計(jì)任務(wù)及要求:1) 清晰且易于操作的用戶界面;動態(tài)顯示光標(biāo)的當(dāng)前位置;2) 在文本編輯區(qū)接受并保存輸入信息;3) 光標(biāo)上移,下移,左移,右移;4) 允許刪除當(dāng)前光標(biāo)前的字符;5) 將編輯文本存盤,讀出并顯示硬盤中的指定文件。(任選)在完成設(shè)計(jì)任務(wù)后,按要求撰寫課程設(shè)計(jì)說明書;對課程設(shè)計(jì)說明書的具體要求請見課程設(shè)計(jì)指導(dǎo)書。閱讀資料:1)IBMPC匯編語言程序設(shè)計(jì)實(shí)驗(yàn)教程

3、3.3節(jié)2)IBMPC匯編語言程序設(shè)計(jì)(第2版)9.1節(jié)時(shí)間安排:設(shè)計(jì)安排一周:周1、周2:完成系統(tǒng)分析及設(shè)計(jì)。周3、周4:完成程序調(diào)試,和驗(yàn)收。周5:撰寫課程設(shè)計(jì)報(bào)告。指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日一、 系統(tǒng)描述1、 目的(1)掌握計(jì)算機(jī)匯編語言的使用。學(xué)完匯編課程,理解和掌握鍵盤和顯示器接口的工作原理,掌握BIOS鍵盤和顯示器中斷調(diào)用的使用方法,掌握復(fù)雜內(nèi)存數(shù)據(jù)結(jié)構(gòu)的定義和管理方法。(2)通過設(shè)計(jì)、編制、調(diào)試一個(gè)文本方式下字處理程序。實(shí)現(xiàn)一個(gè)簡單的文本編輯器的基本功能2、 設(shè)計(jì)內(nèi)容1) 清晰且易于操作的用戶界面;2) 動態(tài)顯示光標(biāo)的當(dāng)前位置;3) 在文本編

4、輯區(qū)可以輸入字符信息;4) 光標(biāo)上移,下移,左移,右移,還可以回車,使用home鍵、end鍵退格鍵;5) 允許刪除當(dāng)前光標(biāo)前的字符;6) 將編輯文本存盤,讀出并顯示硬盤中的指定文件。3、 開發(fā)平臺 所使用的系統(tǒng):Windows XP程序開發(fā)工具:Masn for Windows 6.0 集成實(shí)驗(yàn)開發(fā)環(huán)境序設(shè)計(jì)語言:IBM-PC 匯編語言二、 文本編輯譯系統(tǒng)的概要設(shè)計(jì)文本編輯程序要實(shí)現(xiàn)簡單的文本編輯器基本功能。1. 設(shè)計(jì)一個(gè)友好,易于操作的界面,界面可仿照windows記事本,但windows記事本的菜單項(xiàng)不好制作,所以將主要功能說明制作到邊框,方便使用即可。并且實(shí)現(xiàn)在某一固定區(qū)域內(nèi)可以顯示當(dāng)前

5、光標(biāo)的坐標(biāo)。2. 實(shí)現(xiàn)用鍵盤上的功能鍵制編輯文本,例如:按一下BackSpace鍵可以刪除當(dāng)前光標(biāo)以前的字符;按一下Delete 鍵可以刪除當(dāng)前光標(biāo)之后的字符;按一下Home鍵可以使光標(biāo)跳轉(zhuǎn)到當(dāng)前行的第一列;按一下End 鍵可以使光標(biāo)跳轉(zhuǎn)到當(dāng)前行的最后一列;按一下F1 鍵可以激活File的五個(gè)功能鍵(new,open,save ,save as,exit);按一下Enter鍵可以使光標(biāo)跳轉(zhuǎn)到下一行的第一列;按一下F1 鍵可以顯示幫助信息用 上下左右 鍵 使光標(biāo)在文本框內(nèi)任意移動3. 根據(jù)程序思想設(shè)計(jì)程序流程圖,按照程序流程圖完成實(shí)現(xiàn)各個(gè)模塊的功能三、 詳細(xì)的算法描述1、本程序主要使用的數(shù)據(jù)結(jié)構(gòu)

6、如下: path db 40 dup(0),'$' ;保存文件路徑 buffer db 1840 dup(0) ,'$' ;保存文本內(nèi)容,作為一個(gè)緩存區(qū) line db ? ;保存列號 row db ? ;保存行號bak db 3850 dup(0) ;保存緩沖區(qū)的內(nèi)容2、本程序主要使用的子程序說明Wind ;創(chuàng)建窗口的子程序edit ;進(jìn)行文本文本編輯win4 ;動態(tài)顯示光標(biāo)位置,先保存光標(biāo)位置,最后一行輸出 行列數(shù) 改變了光標(biāo)位置Open ;輸出文本內(nèi)容Save ;保存文本內(nèi)容clean_path ;清除保存路徑的內(nèi)容3、函數(shù)調(diào)用關(guān)系:主函數(shù)mainWind

7、 editWin3和wind4 各個(gè)鍵的 curs_get menu_show func_key 功能模塊 new opensave save_as exithome end backspace delete F10 help win44、程序中主要使用的宏匯編以及出口、入口的參數(shù)說明read_chr macro ;讀取字符宏定義 mov ah,0 int 16hendmhuixian macromov ah,1int 21hendmxianshi macromov ah,2int 21hendmreadf macromov ah,3fhint 21hendmopenf macro mov a

8、h,3dh mov al,0 int 21h endmjianlif macromov ah,3chmov cx,00int 21hendmwritef macromov ah,40hint 21hendmclosef macromov ah,3ehint 21hendmstring macro p1 ;輸入字符光標(biāo) mov ah,9 lea dx,p1 int 21hendmwin macro opr1,opr2,opr3,opr4,opr5,opr6 ;建立窗口 mov ah,07h;初始化 mov al,opr1;上或下卷的行數(shù) mov bh,opr2;卷入行屬性 mov ch,opr3

9、;左上角行號 mov cl,opr4;左下角列號 mov dh,opr5;右上角行號 mov dl,opr6;右下角列號 int 10hendmcurs_locate macro op1,op2,op3 ;定光標(biāo)位置 mov ah,2 mov bh,op1;頁號 mov dh,op2;行號 mov dl,op3;列號 int 10hendmcurs_get macro ;讀光標(biāo)位置 mov ah,03h mov bh,0 int 10h;頁號ch/cl:開始/結(jié)束行;dh/dl 當(dāng)前行endmbuffer_locate macro rrow,ccol;坐標(biāo)定位r*80+c 坐標(biāo)在ax中;即行列

10、數(shù)對應(yīng)的緩沖區(qū)偏移地址 ax中 push bx mov ah,0d dec rrow mov bl,rrow mov al,80d ;r * 80 mul bl add al,ccol;+ c adc ah,0 pop bx endm開始edit的程序流程圖:鍵盤輸入字符判斷鍵值是功能鍵刷屏,重新顯示文本界面錄入字符保存,保存字符NYup光標(biāo)上移row - 1YdownN光標(biāo)下移Row + 1YN光標(biāo)左移line - 1leftYN光標(biāo)右移line + 1rightY光標(biāo)移到本行首位line =0HomeNY光標(biāo)移到本行首位line =79EndNYEnter光標(biāo)移到下行首位row +1; l

11、ine =0YN刪除光標(biāo)前的字符row+1BackspaceYN刪除光標(biāo)后的字符row+1DeleteYN創(chuàng)建新文件row+1F1 newYNPath = 輸入的文件路徑打開文件F2 openYNPath = 輸入的文件路徑保存文件F3 saveYPath = 輸入的文件路徑另存文件F4 save_asNYPath = 輸入的文件路徑保存文件F5 exitNYN結(jié)束四、 軟件的測試方法和測試結(jié)果經(jīng)過測試實(shí)現(xiàn)用鍵盤上的功能鍵制文本編輯程序,1、測試用例:1. 按一下BackSpace鍵可以刪除當(dāng)前光標(biāo)以前的字符;2. 按一下Delete 鍵可以刪除當(dāng)前光標(biāo)之后的字符;3. 按一下Home鍵可以使

12、光標(biāo)跳轉(zhuǎn)到當(dāng)前行的第一列;4. 按一下End 鍵可以使光標(biāo)跳轉(zhuǎn)到當(dāng)前行的最后一列;5. 按一下Enter鍵可以使光標(biāo)跳轉(zhuǎn)到下一行的第一列;6. 用 上下左右 鍵 使光標(biāo)在文本框內(nèi)任意移動2、文件操作1.按一下new 鍵可以創(chuàng)建新文件2.按一下open 鍵可以打開已有的文件;3.按一下save 鍵可以保存當(dāng)前文件4.按一下saveas 鍵可以另存為當(dāng)前文件5.按一下exit 鍵可以正常退出文本編輯器Path = 完整的文件名(默認(rèn)路徑)或 Path = 完整的路徑+文件名程序運(yùn)行結(jié)果如圖:運(yùn)行界面如下:輸入字符后如下:按F1鍵后如下:選擇exit,如下:按ENTER后如下:同意保存,輸入y;然后

13、輸入文件名:確定,按enter后退出:五、 小結(jié)與體會通過本次匯編課程設(shè)計(jì),加深了對匯編理論知識的理解,真正地把匯編的理論知識應(yīng)用于實(shí)踐,更好的掌握了匯編技術(shù)的基本方法。在掌握基本指令的基礎(chǔ)上,更加了解子程序結(jié)構(gòu)設(shè)計(jì)、宏匯編設(shè)計(jì)、I/O中斷、顯示器的控制、基本的文件操作。子程序設(shè)計(jì):把程序模塊化,完成獨(dú)立的功能宏匯編設(shè)計(jì):更像高級語言中的函數(shù)設(shè)計(jì)INT 21H :強(qiáng)大的DOS功能調(diào)用(包括文件操作)INT 10H :顯示操作,進(jìn)行顯示控制INT 16H :鍵盤中斷,控制鍵盤,完成對應(yīng)的操作本程序最大特點(diǎn)功能比較完善,由于使用較多的宏匯編是的代碼量大大降低,宏匯編從分體現(xiàn)代碼的重用。實(shí)現(xiàn):Bac

14、kSpace刪除當(dāng)前光標(biāo)以前的字符;Delete 鍵刪除當(dāng)前光標(biāo)之后的字符;Home鍵使光標(biāo)跳轉(zhuǎn)到當(dāng)前行的第一列;End 鍵使光標(biāo)跳轉(zhuǎn)到當(dāng)前行的最后一列;Enter鍵使光標(biāo)跳轉(zhuǎn)到下一行的第一列;用 上下左右 鍵 使光標(biāo)在文本框內(nèi)任意移動可以保存文件,以及打開指定路徑文件,基本是一個(gè)簡單的文本編輯器文本的內(nèi)容是由buffer定義的緩沖區(qū)保存,所以就把光標(biāo)的位置換算為數(shù)組的下標(biāo),(坐標(biāo)定位公式r*80+c)進(jìn)行定位操作。是每個(gè)元素都對應(yīng)文本框內(nèi)的一個(gè)位置起到保存文本內(nèi)容的作用。但是,文本的大小也就固定了;同時(shí):當(dāng)插入時(shí)就會覆蓋原有的字符。這樣就很難實(shí)現(xiàn)插入操作。為此我想:只要略微改變一下當(dāng)前的數(shù)據(jù)結(jié)構(gòu)就可以實(shí)現(xiàn)插入和擴(kuò)充文本,或者專門為插入計(jì)算一個(gè)插入的函數(shù)也可實(shí)現(xiàn)。 六、 參考文獻(xiàn)1、IBM-PC 匯編語言程序設(shè)計(jì)(第2版)清華大學(xué)出版社沈美明 溫冬嬋 著2/、IBM-PC 匯編

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論