版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 計(jì)算機(jī)與通信學(xué)院</b></p><p><b> 軟件學(xué)院</b></p><p><b> 課程設(shè)計(jì)說明書</b></p><p><b> 簡易文本編輯器</b></p><p> 作 者:
2、 </p><p> 學(xué) 號(hào): </p><p> 專 業(yè): 軟件技術(shù) </p><p> 班 級(jí): 軟件2班 </p><p> 指導(dǎo)教師: <
3、;/p><p> 答辯時(shí)間: 2012/7/2 </p><p> 微型計(jì)算機(jī)原理及應(yīng)用課程設(shè)計(jì)任務(wù)書</p><p> 微型計(jì)算機(jī)原理及應(yīng)用課程設(shè)計(jì)內(nèi)容</p><p> 匯編語言是微型計(jì)算機(jī)原理及應(yīng)用的基礎(chǔ),微機(jī)主機(jī)和接口所要實(shí)現(xiàn)的功能都要通過匯編語言來實(shí)現(xiàn)。盡管匯編語言程序設(shè)計(jì)編程效率低,但其運(yùn)行效率高、
4、速度快。因此掌握匯編語言是學(xué)好微機(jī)原理和接口設(shè)計(jì)的第一步。</p><p> 設(shè)計(jì)一個(gè)功能較完備的文本編輯器,文本編輯器大小為24行80列,界面提供編輯菜單、文件操作菜單及簡單幫助。</p><p> 微型計(jì)算機(jī)原理及應(yīng)用課程設(shè)計(jì)目的</p><p> 1、學(xué)習(xí)磁盤文件的建立、打開、關(guān)閉和讀寫等操作功能調(diào)用;</p><p> 2、實(shí)
5、現(xiàn)對磁盤文件的存??;</p><p> 3、熟練掌握BIOS、DOS的系統(tǒng)功能調(diào)用;</p><p> 微型計(jì)算機(jī)原理及應(yīng)用課程設(shè)計(jì)的要求</p><p> 1、利用DOS系統(tǒng)功能調(diào)用和BIOS功能調(diào)用設(shè)計(jì)一個(gè)有菜單欄的編輯窗口。在該窗口中可以實(shí)現(xiàn)文本的輸入;可以利用“Del”鍵、“BackSpace”鍵、“Home”鍵、“End”鍵、“↑”、“↓”、“←”、
6、“→”方向移動(dòng)鍵實(shí)現(xiàn)對輸入文本的全屏編輯。使用彩色組和背景顏色來設(shè)計(jì)界面顏色,利用DOS系統(tǒng)功能調(diào)用的磁盤文件存取技術(shù)實(shí)現(xiàn)文件的“信件”、“打開”、“保存”、“另存為”與“退出”功能。</p><p> 2、查閱文獻(xiàn)資料,一般在5篇以上;</p><p> 3、完成算法設(shè)計(jì)和程序設(shè)計(jì)、調(diào)試;</p><p> 4、撰寫課程設(shè)計(jì)說明書;</p>&
7、lt;p><b> 5、做好答辯工作。</b></p><p> 微型計(jì)算機(jī)原理及應(yīng)用課程設(shè)計(jì)思路</p><p> DOS提供了一組完成磁盤文件的建立、打開、關(guān)閉和讀寫等操作的功能調(diào)用。利用DOS和BIOS功能調(diào)用,匯編語言可實(shí)現(xiàn)對磁盤文件的存取。利用BIOS功能調(diào)用中的10H中斷類型,可以設(shè)置顯示模式,設(shè)置窗口背景、字符顏色等。調(diào)用DOS系統(tǒng)功能中的0
8、9號(hào)功能,可以實(shí)現(xiàn)顯示菜單信息字符串。調(diào)用BIOS中的鍵盤I/O</p><p> 中斷調(diào)用(16H中斷)中的0號(hào)功能,可以從鍵盤讀取字符,通過對“↑”、“↓”、“←”、“→”方向鍵以及“Del”、“BackSpace”、“Home”、“End”鍵的掃描碼的判斷,結(jié)合10H中斷中的02號(hào)、03號(hào)功能確定光標(biāo)的相應(yīng)移動(dòng),從而實(shí)現(xiàn)對輸入文本的全屏幕編輯。利用DOS系統(tǒng)功能調(diào)用中的文件管理功能,如建立文件(16H)、
9、打開文件(0FH)、讀文件(3FH)、寫文件(40H)等,可以實(shí)現(xiàn)對文件的操作。</p><p> 微型計(jì)算機(jī)原理及應(yīng)用課程設(shè)計(jì)提交的成果</p><p> 1. 設(shè)計(jì)說明書一份,內(nèi)容包括:</p><p> 1) 中文摘要100字;關(guān)鍵詞3-5個(gè);</p><p><b> 2) 前言;</b></p&g
10、t;<p><b> 3) 設(shè)計(jì)內(nèi)容;</b></p><p><b> 4) 設(shè)計(jì)目的;</b></p><p><b> 5) 設(shè)計(jì)要求;</b></p><p> 6) 設(shè)計(jì)思路(包含程序流程圖);</p><p> 7) 軟件使用說明書(核心界面
11、說明);</p><p> 8) 設(shè)計(jì)總結(jié)、參考文獻(xiàn)、致謝等。</p><p> 2. 刻制光盤一張。</p><p><b> 設(shè)計(jì)的主要參考文獻(xiàn)</b></p><p> 1 宋杰,汪志宏,江敏,微機(jī)原理與接口技術(shù)課程設(shè)計(jì),機(jī)械工業(yè)出版社,2005.4</p><p> 2 周明
12、德,微型計(jì)算機(jī)系統(tǒng)原理及應(yīng)用習(xí)題集、習(xí)題解答與實(shí)驗(yàn)指導(dǎo),清華大學(xué)出版社,2005.7</p><p> 3 張開成,微型計(jì)算機(jī)原理,西南師范大學(xué)出版社,2006.8</p><p> 4 沈美明,溫冬嬋, IBM-PC匯編語言程序設(shè)計(jì)第2版,清華大學(xué)出版社,2006.5</p><p> 5 戴梅萼,史嘉權(quán), 微型機(jī)原理與技術(shù)-習(xí)題、實(shí)驗(yàn)和綜合訓(xùn)練題集,
13、清華大學(xué)出版社,2009.4</p><p> 各階段時(shí)間安排(共1周):</p><p> 2012年6月20日</p><p><b> 摘要</b></p><p> 計(jì)算機(jī)的不斷更新發(fā)展,在各個(gè)領(lǐng)域的應(yīng)用越來越多。而匯編語言是計(jì)算機(jī)能夠提供用戶使用的最快而又最好最有效的語言,也是能夠利用計(jì)算機(jī)所有硬件特性
14、并能直接控制硬件的唯一語言。因而,對程序的空間和時(shí)間要求很高的場合,匯編語言的應(yīng)用就顯得必不可少了,一些直接控制硬件的應(yīng)用場合,則更是非用匯編語言不可。</p><p> 通過具體的問題分析、設(shè)計(jì)、調(diào)試、運(yùn)行程序。在實(shí)際問題中鍛煉提高自己,增加了對本門課程內(nèi)容的理解,鍛煉了動(dòng)手能力。就這個(gè)程序具體而言:調(diào)用宏,顯示主界面,通過選擇不同的選項(xiàng),可以進(jìn)入不同的界面;采用DIOS功能的中斷,可以在任何時(shí)候退出當(dāng)前所在
15、的界面并通過選擇進(jìn)入其他的界面。這個(gè)程序最終通過菜單所提示的信息選取所要進(jìn)入的界面,獲得所要的功能。</p><p> 關(guān)鍵字:匯編語言,程序</p><p><b> 前言</b></p><p> 匯編語言是微型計(jì)算機(jī)原理及應(yīng)用的基礎(chǔ),微機(jī)主機(jī)和接口所要實(shí)現(xiàn)的功能都要通過匯編語言來實(shí)現(xiàn)。盡管匯編語言程序設(shè)計(jì)編程效率低,但其運(yùn)行效率高、
16、速度快。 不但要求有較高的理論水平,而且還要求有實(shí)際的動(dòng)手能力。因此掌握匯編語言是學(xué)好微機(jī)原理和接口設(shè)計(jì)的第一步。</p><p> 本課程設(shè)計(jì)的主要目的是提高實(shí)踐能力,包括提高匯編等語言的編程能力,長期以來,注重書本知識(shí),輕視實(shí)際動(dòng)手設(shè)計(jì)能力是教學(xué)中普遍存在的現(xiàn)象。進(jìn)行課程設(shè)計(jì)的目的就是要改變這種狀況,使學(xué)習(xí)者既具有完備的理論知識(shí),也能夠解決在實(shí)際學(xué)習(xí),生活工作中遇到的問題。學(xué)生應(yīng)該能夠把學(xué)習(xí)到的理論知識(shí)運(yùn)用
17、到實(shí)際中去,將知識(shí)轉(zhuǎn)變?yōu)閷?shí)際的能力,同時(shí)通過這些理論知識(shí)和實(shí)際的應(yīng)用推動(dòng)理論和實(shí)踐的發(fā)展。</p><p><b> 目錄</b></p><p><b> 一、設(shè)計(jì)內(nèi)容1</b></p><p><b> 二、設(shè)計(jì)目的1</b></p><p><b>
18、 三、設(shè)計(jì)要求1</b></p><p><b> 四、設(shè)計(jì)分析1</b></p><p><b> 五、操作說明2</b></p><p><b> 六、程序設(shè)計(jì)2</b></p><p> 七、軟件使用說明書4</p><p
19、><b> 八、設(shè)計(jì)總結(jié)6</b></p><p><b> 致 謝7</b></p><p><b> 參考文獻(xiàn)8</b></p><p><b> 源程序9</b></p><p><b> 一、設(shè)計(jì)內(nèi)容</b&
20、gt;</p><p> 設(shè)計(jì)一個(gè)功能較完整的文本編輯器,文本編輯器大小為24行80列。</p><p><b> 二、設(shè)計(jì)目的</b></p><p> 學(xué)習(xí)磁盤文件的建立,打開,關(guān)閉和讀寫等操作的功能調(diào)用,實(shí)現(xiàn)對磁盤文件的存取。熟練掌握BIOS,DOS的系統(tǒng)功能調(diào)用。</p><p><b> 三、
21、設(shè)計(jì)要求</b></p><p> 利用DOS系統(tǒng)功能調(diào)用和BIOS功能調(diào)用設(shè)計(jì)一個(gè)有菜單欄的編輯窗口。再該窗口中可以實(shí)現(xiàn)文本的輸入;可以利用“Del”鍵,“BackSpace”鍵,“Home”鍵,“End”鍵,“↑”,“↓”,“←”,“→”鍵以及“Del”,“Ins”,“BackSpace”,“End”,“Home”鍵的掃描碼的判斷,結(jié)合10H中斷中的02號(hào),03號(hào)功能確定光標(biāo)的相應(yīng)方向移動(dòng)鍵實(shí)現(xiàn)
22、對輸入文本的全屏幕編輯。使用彩色組合背景顏色來設(shè)計(jì)界面顏色,;利用DOS系統(tǒng)功能調(diào)用的磁盤文件存取技術(shù)實(shí)現(xiàn)文件的“新建”,“打開”,“保存”,“另存為”與“退出”功能。</p><p><b> 四、設(shè)計(jì)分析</b></p><p> 本案例充分應(yīng)用了DOS和BIOS的中斷功能。</p><p> DOS提供了一組完成磁盤文件的建立,打開
23、,關(guān)閉和讀寫等操作的功能調(diào)用。利用DOS和BIOS的功能調(diào)用,匯編語言可實(shí)現(xiàn)對磁盤文件的存取。對磁盤文件的管理有文件代號(hào)方式下的管理和文件控制塊方式下的管理兩種方式。</p><p> 利用BIOS功能調(diào)用中的10H中斷類型,可以設(shè)置顯示模式,設(shè)置窗口背景,字符顏色等。</p><p> 調(diào)用DOS系統(tǒng)功能中的09號(hào)功能,可以實(shí)現(xiàn)顯示菜單信息字符串。調(diào)用BIOS中的鍵盤I/O中斷調(diào)用(
24、16H中斷)中的0號(hào)功能,可以從鍵盤讀取字符,通過對“↑”,“↓”,“←”,“→”方向移動(dòng)移動(dòng),從而實(shí)現(xiàn)對輸入文本的全屏幕編輯。利用DOS系統(tǒng)功能調(diào)用中的文件管理功能,如建立文件(16H),打開文件(0FH),讀文件(3FH)寫文件(40H)等,可以實(shí)現(xiàn)對文件的操作。</p><p><b> 五、操作說明</b></p><p> 運(yùn)行可執(zhí)行文件TEXTEDIT
25、.EXE,輸入文本,利用Del鍵,BackSpace鍵,Home鍵,End鍵,上下左右方向移動(dòng)鍵對文本進(jìn)行全屏幕編輯。編輯完成后,按F1鍵激活菜單,下移光標(biāo),選擇SAVE,輸入文件名。也可以選擇File菜單的其他菜單項(xiàng),它們的功能均可實(shí)現(xiàn)。按F10鍵激活幫助,按Esc鍵退出幫助。</p><p> 要指出的是,本案例要產(chǎn)生的只是示范性的簡易的文本編輯器,其中包含的只有基本的框架,很多方面考慮并不全面,尚需完善。
26、例如沒有實(shí)現(xiàn)編輯菜單,在編輯狀態(tài)下用退格或刪除鍵刪除字符時(shí),后面的字符不會(huì)自動(dòng)前移等。對于這些不足的地方讀者可以自行考慮補(bǔ)充,再加以改進(jìn)使其更正確,全面。</p><p><b> 六、程序設(shè)計(jì)</b></p><p><b> 流程圖如圖</b></p><p><b> 入口 </b><
27、;/p><p><b> 圖1.流程圖</b></p><p><b> 七、軟件使用說明書</b></p><p> 雙擊可執(zhí)行文件wbbjq.exe,在出現(xiàn)的界面中輸入任意文本容,利用DEL鍵、BACKSPACE鍵、HOME鍵、END鍵、上下左右光標(biāo)鍵對文本進(jìn)行全屏幕編輯,按f1鍵激活菜單file,下移光標(biāo),選擇sa
28、ve,輸入文件名。也可以選擇FILE菜單的其他菜單項(xiàng),他們的功能均可實(shí)現(xiàn)。按f10激活幫助,按ESC鍵退出幫助。</p><p><b> 圖2. 編輯</b></p><p><b> 圖3. 匯編</b></p><p><b> 圖4.查詢</b></p><p>
29、<b> 圖5.連接</b></p><p><b> 圖6.運(yùn)行界面</b></p><p> 圖7. FILE 下拉菜單</p><p> 圖8. F10幫助界面</p><p><b> 八、設(shè)計(jì)總結(jié)</b></p><p>
30、通過本次課程設(shè)計(jì),使我們對匯編語言的語法結(jié)構(gòu)和基本語言有了較為清楚的了解;同時(shí)通過我們大家合作共同努力都認(rèn)真設(shè)計(jì)和編寫代碼,我們也將書上每章的知識(shí)大致的復(fù)習(xí)了一遍,加深了我們的印象,通過設(shè)計(jì)我們深刻認(rèn)識(shí)到一個(gè)清晰明朗的流程圖對程序的設(shè)計(jì)是十分重要的。在設(shè)計(jì)中,我們在沒有先畫流程圖的情況下就開始編寫代碼,結(jié)果是我們弄得一頭污水,實(shí)在是無法進(jìn)行了,后來經(jīng)過我們大家商議,我們各自分工,在弄清題意的情況下,畫了程序流程圖,并按此開始編寫代碼,結(jié)
31、果受益匪淺。是我們在最短的時(shí)間里完成了這次課程設(shè)計(jì)。通過這次課設(shè)使我們知道了團(tuán)隊(duì)的力量是很強(qiáng)大的,我們以后不管在生活中還是在學(xué)習(xí)生活中都要學(xué)會(huì)發(fā)揮團(tuán)隊(duì)的力量。</p><p><b> 致 謝</b></p><p> 衷心地感謝任老師在這學(xué)期里對我的諄諄教導(dǎo),孜孜不倦地陪伴著我們一起走過大一的歲月,通過老師的教導(dǎo),使我對計(jì)算機(jī)有了更深層次的了解和認(rèn)識(shí),同時(shí)也讓我
32、獲得了許多以前無法學(xué)到的新知識(shí),這對我在以后的學(xué)習(xí)和人生路都起到了很大的幫助。</p><p> 感謝張老師在百忙之中來為我們作指導(dǎo),不顧天氣的熾熱難耐,為了我們的課程設(shè)計(jì)能夠早日完成,不辭辛苦的來為我們作指導(dǎo)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 宋杰,汪志宏,江敏,微機(jī)原理與接口技術(shù)課程設(shè)計(jì),機(jī)械工
33、業(yè)出版社,2005.4</p><p> [2] 周明德,微型計(jì)算機(jī)系統(tǒng)原理及應(yīng)用習(xí)題集、習(xí)題解答與實(shí)驗(yàn)指導(dǎo),清華大學(xué)出版社,2005.7</p><p> [3] 張開成,微型計(jì)算機(jī)原理,西南師范大學(xué)出版社,2006.8</p><p> [4] 沈美明,溫冬嬋, IBM-PC匯編語言程序設(shè)計(jì)第2版,清華大學(xué)出版社,2006.5</p>
34、<p> [5] 戴梅萼,史嘉權(quán), 微型機(jī)原理與技術(shù)-習(xí)題、實(shí)驗(yàn)和綜合訓(xùn)練題集,清華大學(xué)出版社,2009.4</p><p><b> 源程序</b></p><p> RED_CHR MACRO ;讀取字符宏定義</p><p><b> MOV AH,0&l
35、t;/b></p><p><b> INT 16H</b></p><p><b> ENDM</b></p><p> STRING MACRO P1 ;輸入字符光標(biāo)</p><p><b> MOV AH,9</
36、b></p><p><b> LEA DX,P1</b></p><p><b> INT 21H</b></p><p><b> ENDM</b></p><p> WIN MACRO OPR1,OPR2,OPR3,OPR4,OPR5,OPR6 ;建立窗口
37、</p><p> MOV AH,06H</p><p> MOV AL,OPR1</p><p> MOV BH,OPR2</p><p> MOV CH,OPR3</p><p> MOV CL,OPR4</p><p> MOV DH,OPR5</p><p
38、> MOV DL,OPR6</p><p><b> INT 10H</b></p><p><b> ENDM</b></p><p> POS_CURSE MACRO OP1,OP2,OP3 ;定義光標(biāo)位置</p><p><b> MOV
39、AH,2</b></p><p> MOV BH,OP1</p><p> MOV DH,OP2</p><p> MOV DL,OP3</p><p><b> INT 10H</b></p><p><b> ENDM</b></p>
40、<p> POS_GET MACRO ;顯示光標(biāo)位置</p><p> MOV AH,03H</p><p><b> MOV BH,0</b></p><p><b> INT 10H</b></p><p><b&
41、gt; ENDM</b></p><p> DATA SEGMENT ;定義數(shù)據(jù)段</p><p> MENU DB 'FILE EDIT HELP $'</p><p> MASS_1 DB 'F1 ACTIVE FILE F10 AC
42、TIVE HELP','$'</p><p> MANU_1 DB ' NEW ',13,10,'$'</p><p> MANU_2 DB ' OPEN ',13,10,'$'</p><p> MANU_3 DB ' SAVE
43、 ',13,10,'$'</p><p> MANU_4 DB ' SAVE AS ',13,10,'$'</p><p> MANU_5 DB ' EXIT ','$'</p><p> HANDLE DW ?</p><p&g
44、t; MESSAGE1 DB ' PLEASE INPUT FILE NAME:','$'</p><p> MESSAGE2 DB ' PLEASE INPUT SAVE FILE NAME:','$'</p><p> MESSAGE3 DB ' PLEASE INPUT OPEN FILE NAME:
45、9;,'$'</p><p> MESSAGE4 DB ' ***THE FILE IS NOT SAVE! SAVE IT NOW? (Y/N)***: ','$'</p><p> PATH DB 50 DUP(0),'$'</p><p> BUFFER DB 2000 DUP(
46、?)</p><p> BAK DB 3850 DUP(0)</p><p> LINE DB ?</p><p> ROW DB ?</p><p> CHAR DB ?</p><p> HELP_MAS1 DB ' WELCOME USE EDITOR! $&
47、#39; ;幫助內(nèi)容</p><p> HELP_MAS2 DB 'PLEASE THE FIRST ACTIVE HELP! $'</p><p> HELP_MAS3 DB 'GOOD LUCKY!! $'</p><p> HELP_MAS4 DB '==========================
48、================================$'</p><p> HELP_MAS5 DB 'PRESS F1 TO ACTIVE FILE. $'</p><p> HELP_MAS6 DB 'YOU CAN USE DOWN CURSOR KEY TO CHOOSE THE FUCTION $'</p>&
49、lt;p> HELP_MAS7 DB 'PRESS F10 TO SHOW THE HELP MASSAGE.PRESS ESC TO QUIT$'</p><p> DATE DB 'TODAY ??/??/','$' ;調(diào)用日期</p><p> HANGLIE DB '???//???&
50、#39;,'$' ;行//列</p><p> DATA ENDS</p><p> CODE SEGMENT </p><p> MAIN PROC FAR ;主程序</p>&
51、lt;p> ASSUME CS:CODE,DS:DATA</p><p><b> START:</b></p><p><b> PUSH DS</b></p><p> SUB AX,AX</p><p><b> PUSH AX</b></p>
52、;<p> MOV AX,DATA</p><p> MOV DS,AX</p><p> CALL WIND </p><p> CALL EDIT </p><p><b> RET</b></
53、p><p> MAIN ENDP</p><p> WIND PROC NEAR ;創(chuàng)建窗口子程序</p><p> WIN 0,3EH,1,0,24,79 ;定義窗口背景</p><p> WIN 1,1FH,0
54、,0,0,79</p><p> WIN 0,1FH,24,0,24,79</p><p> SHOW: POS_CURSE 0,0,1 ;顯示菜單位置及內(nèi)容 </p><p><b> MOV AH,9</b></p><p> LEA DX,MENU</p
55、><p><b> INT 21H</b></p><p> SHOW_2: POS_CURSE 0,24,1 ;顯示狀態(tài)欄位置及內(nèi)容</p><p><b> MOV AH,9</b></p><p> LEA DX,MASS_1</p>
56、<p><b> INT 21H</b></p><p><b> CALL WIN3</b></p><p><b> CALL WIN4</b></p><p> POS_CURSE 0,1,0</p><p> MOV ROW,DH</p>
57、;<p> MOV LINE,DL</p><p><b> WIND ENDP</b></p><p> EDIT PROC NEAR</p><p> CHAR_GET: CALL COM ;讀字符</p><p> COM PROC NEA
58、R ;定義功能鍵</p><p><b> POS_GET</b></p><p> MOV ROW,DH</p><p> MOV LINE,DL</p><p> FIRST: POS_CURSE 0,ROW,LINE</p><p&g
59、t; J00: MOV AH,0</p><p> INT 16H ;從鍵盤讀字符 AH=掃描碼 AL=字符碼</p><p><b> PUSH AX</b></p><p> LEA DX,BUFFER</p><p> MOV BUFFER[BX],AL&l
60、t;/p><p><b> INC BX</b></p><p> CMP AH,48H ;上</p><p><b> JZ UP_1</b></p><p> CMP AH,50H ;下</p>
61、<p> JZ DOWN_1</p><p> CMP AH,4BH ;左</p><p><b> JZ LEFT</b></p><p> CMP AH,4DH ;右</p><p> JZ RIGHT&
62、lt;/p><p> CMP AH,1CH ;回車</p><p> JZ ENTER_1</p><p> CALL FUC_KEY</p><p><b> MOV AH,2</b></p><p><b> MOV DL,AL<
63、;/b></p><p><b> INT 21H</b></p><p><b> POP AX</b></p><p> CALL MENU_SHOW</p><p><b> JMP J6</b></p><p> DOWN_
64、1: JMP DOWN</p><p> ENTER_1: JMP ENTER_2</p><p> UP_1: JMP UP</p><p> LEFT: POS_GET ;光標(biāo)左移</p><p> MOV
65、 ROW,DH</p><p> MOV DL,LINE</p><p> CMP LINE,0</p><p> JNZ DIRECT</p><p> MOV LINE,79</p><p><b> DEC ROW</b></p><p><b>
66、 CMP ROW,0</b></p><p> JE STOP2 </p><p><b> JMP FIRST</b></p><p> STOP2: MOV ROW,1</p><p><b> JMP FIRST</b></p><
67、;p> DIRECT: DEC LINE</p><p> CALL WIN4 ;顯示光標(biāo)位置</p><p><b> JMP FIRST</b></p><p> RIGHT: POS_GET ;光標(biāo)右移
68、</p><p> MOV ROW,DH</p><p> MOV DL,LINE</p><p> CMP LINE,79</p><p> JNZ DIRECT2</p><p> MOV LINE,0</p><p><b> INC ROW</b><
69、;/p><p> CMP ROW,24</p><p> JE RETURNS1 </p><p><b> JMP FIRST</b></p><p> DIRECT2: INC LINE</p><p><b> CALL WIN4</b>
70、;</p><p><b> JMP FIRST</b></p><p> ENTER_2: JMP ENTER</p><p> UP: ;上移光標(biāo)</p><p><b> POS_GET<
71、/b></p><p> MOV ROW,DH</p><p> MOV DL,LINE</p><p><b> DEC ROW</b></p><p><b> CMP ROW,0</b></p><p><b> JE STOP1</b
72、></p><p><b> CALL WIN4</b></p><p><b> JMP FIRST</b></p><p> STOP1: MOV ROW,1</p><p><b> JMP FIRST</b></p>&l
73、t;p> DOWN: ;下移光標(biāo)</p><p><b> POS_GET</b></p><p> MOV ROW,DH</p><p> MOV DL,LINE </p><p><b> INC ROW<
74、;/b></p><p> CMP ROW,24</p><p><b> JE STOP3</b></p><p><b> CALL WIN4</b></p><p><b> JMP FIRST</b></p><p> STOP
75、3: MOV ROW,23</p><p><b> JMP FIRST</b></p><p> RETURNS1: JMP RETURNS</p><p> ENTER: ;回車換行</p><p>
76、;<b> POS_GET</b></p><p> MOV ROW,DH</p><p> MOV LINE,DL</p><p><b> INC ROW</b></p><p> CMP ROW,24</p><p> JE RETURNS</p&g
77、t;<p> MOV LINE,0</p><p><b> CALL WIN4</b></p><p><b> JMP FIRST</b></p><p> RETURNS: MOV ROW,24</p><p> MOV LINE,0</p>
78、<p><b> JMP FIRST</b></p><p> J6: RET</p><p> COM ENDP</p><p> FUC_KEY PROC NEAR ;功能鍵子程序 </p><p> NEXT: CM
79、P AH,47H ;HOME</p><p><b> JZ HOME</b></p><p> CMP AH,4FH ;END</p><p><b> JZ _END</b></p><p> CMP AH,
80、0EH ;BACKSPACE</p><p> JZ BAK_SP</p><p> CMP AH,53H</p><p><b> JZ DEL</b></p><p> CMP AH,44H ;F10</p><
81、;p> JZ HELP_0</p><p><b> RET</b></p><p> HELP_0: CALL HELP</p><p> HOME: POS_GET ;HOME鍵的功能</p><p> MOV RO
82、W,DH</p><p> MOV LINE,0</p><p><b> CALL WIN4</b></p><p> JMP FIRST </p><p> END: ;END鍵的功能</p><p&g
83、t;<b> POS_GET</b></p><p> MOV ROW,DH</p><p> MOV LINE,79</p><p><b> CALL WIN4</b></p><p> JMP FIRST </p><p> BAK_SP:
84、 ;退格鍵的功能</p><p><b> POS_GET</b></p><p> MOV ROW,DH</p><p> MOV LINE,DL</p><p> CMP LINE,0</p><p><b>
85、 JE STOP</b></p><p><b> DEC LINE</b></p><p><b> JMP AB</b></p><p><b> STOP: </b></p><p> MOV LINE,0</p><p>&
86、lt;b> AB: </b></p><p> POS_GET 0,ROW,LINE</p><p><b> MOV AH,2</b></p><p><b> MOV DL,00</b></p><p><b> INT 21H</b>&l
87、t;/p><p><b> CALL WIN4</b></p><p><b> JMP FIRST</b></p><p> DEL: ;DEL刪除</p><p><b> POS_GET&l
88、t;/b></p><p> MOV ROW,DH</p><p> MOV LINE,DL</p><p><b> DEC LINE</b></p><p> POS_GET 0,ROW,LINE</p><p><b> MOV AH,2</b><
89、/p><p><b> MOV DL,00</b></p><p><b> INT 21H</b></p><p><b> INC LINE</b></p><p><b> CALL WIN4</b></p><p>&l
90、t;b> JMP FIRST</b></p><p><b> CM: </b></p><p> CMP LINE,00</p><p> JZ POS_CM</p><p> POS_CM: POS_CURSE 0,0,0</p><p>
91、;<b> JMP FIRST</b></p><p> HELP PROC NEAR ;顯示幫助信息</p><p> CALL SAVEDISPLAY ;顯示幫助信息每行的位置</p><p><b> POS_GET</b></p><p&
92、gt;<b> PUSH DX</b></p><p> WIN 0,57H,4,5,21,70</p><p> POS_CURSE 0,6,25</p><p> STRING HELP_MAS1</p><p> POS_CURSE 0,8,11</p><p> STRING
93、HELP_MAS2</p><p> POS_CURSE 0,10,11</p><p> STRING HELP_MAS3</p><p> POS_CURSE 0,12,11</p><p> STRING HELP_MAS4</p><p> POS_CURSE 0,14,11</p>&
94、lt;p> STRING HELP_MAS5</p><p> POS_CURSE 0,16,11</p><p> STRING HELP_MAS6</p><p> POS_CURSE 0,18,11</p><p> STRING HELP_MAS7</p><p><b> POP
95、DX</b></p><p> POS_CURSE 0,DH,DL</p><p><b> MOV AH,0</b></p><p><b> INT 16H</b></p><p> CMP AH,36H ;F10 ACTIVE HELP
96、</p><p><b> JNZ CLS</b></p><p><b> CALL HELP</b></p><p><b> CLS: </b></p><p> WIN 0,1EH,9,10,13,70 ;清屏</p>
97、<p> CALL BACKDISPLAY</p><p><b> HELP ENDP</b></p><p> FUC_KEY ENDP</p><p> MENU_SHOW PROC NEAR ;顯示菜單</p><p> CALL SAVEDISPLAY</p><
98、;p><b> PUSH CX</b></p><p> CMP AH,3BH ;F1功能</p><p> JZ MENU_SH</p><p> JMP CHAR_GET</p><p> MENU_SH: ;定義菜單的背景
99、字體顏色</p><p><b> POS_GET</b></p><p><b> PUSH DX</b></p><p> WIN 0,06H,2,1,7,11</p><p> WIN 0,65H,1,0,6,10</p><p> POS_CURSE 0,1
100、,0</p><p> STRING MANU_1</p><p> STRING MANU_2</p><p> STRING MANU_3</p><p> STRING MANU_4</p><p> STRING MANU_5</p><p><b> POP DX
101、</b></p><p><b> DEC DL</b></p><p> POS_CURSE 0,DH,DL</p><p> COPMAR: </p><p><b> RED_CHR</b></p><p> CMP AH,50H
102、 </p><p> JZ MANU_N</p><p> JMP MANU_HID</p><p> MANU_HID: ;菜單隱藏</p><p> WIN 0,1EH,1,1,7,11</p><p> C
103、ALL BACKDISPLAY</p><p> JMP CHAR_GET</p><p> MANU_N: ;開始定義各個(gè)菜單項(xiàng)</p><p> WIN 0,65H,5,1,5,8</p><p> POS_CURSE 0,5,0</p&g
104、t;<p> STRING MANU_5</p><p> WIN 0,15H,1,1,1,8</p><p> POS_CURSE 0,1,0</p><p> STRING MANU_1</p><p><b> RED_CHR</b></p><p> CMP AH
105、,48H</p><p> JE MANU_N</p><p> CMP AL,0DH</p><p><b> JZ NEW_1</b></p><p> CMP AH,50H</p><p> JE MANU_O</p><p> JMP MANU_H
106、ID</p><p> MANU_N0: JMP MANU_N</p><p><b> MANU_O:</b></p><p> WIN 0,65H,1,1,1,8</p><p> POS_CURSE 0,1,0</p><p> STRING MANU_1&l
107、t;/p><p> WIN 0,15H,2,1,2,8</p><p> POS_CURSE 0,2,0</p><p> STRING MANU_2</p><p><b> RED_CHR</b></p><p> CMP AH,48H</p><p> JE
108、 MANU_O</p><p> CMP AL,0DH</p><p><b> JZ OPEN_1</b></p><p> CMP AH,50H</p><p> JE MANU_S</p><p> JMP MANU_HID</p><p> NEW_1
109、: JMP NEW_2</p><p><b> MANU_S:</b></p><p> WIN 0,65H,2,1,2,8</p><p> POS_CURSE 0,2,0</p><p> STRING MANU_2</p><p> WIN 0,15H,3,1
110、,3,8</p><p> POS_CURSE 0,3,0</p><p> STRING MANU_3</p><p><b> RED_CHR</b></p><p> CMP AL,0DH</p><p> JZ SAVE_1</p><p> CMP
111、AH,48H</p><p> JE MANU_S</p><p> CMP AH,50H</p><p> JE MANU_A</p><p> JMP MANU_HID</p><p> OPEN_1: JMP OPEN_2</p><p> MAN
112、U_N1: JMP MANU_N</p><p><b> MANU_A:</b></p><p> WIN 0,65H,3,1,3,8</p><p> POS_CURSE 0,3,0</p><p> STRING MANU_3</p><p> WIN 0,1
113、5H,4,1,4,8</p><p> POS_CURSE 0,4,0</p><p> STRING MANU_4</p><p><b> RED_CHR</b></p><p> CMP AH,1CH</p><p> JZ SAVE_2</p><p>
114、 CMP AH,48H</p><p> JE MANU_A</p><p> CMP AH,50H</p><p> JE MANU_E</p><p> JMP MANU_HID</p><p> MANU_N2: JMP MANU_N1</p><p>
115、; NEW_2: JMP NEW</p><p> SAVE_1: CALL SAVE</p><p> SAVE_2: CALL SAVEAS</p><p><b> MANU_E:</b></p><p> WIN 0,65H
116、,4,1,4,8</p><p> POS_CURSE 0,4,0</p><p> STRING MANU_4</p><p> WIN 0,15H,5,1,5,8</p><p> POS_CURSE 0,5,0</p><p> STRING MANU_5</p><p><
117、;b> RED_CHR</b></p><p> CMP AH,50H</p><p> JE MANU_N2</p><p> CMP AH,48H</p><p> JE MANU_E</p><p> CMP AH,1CH</p><p><b>
118、; JE EXIT</b></p><p> JMP MANU_HID</p><p><b> EXIT:</b></p><p> CALL BACKDISPLAY</p><p> WIN 0,07H,15,10,17,61</p><p> WIN 0,24H,1
119、4,9,16,60</p><p><b> MOV DH,15</b></p><p><b> MOV DL,9</b></p><p><b> MOV BH,0</b></p><p><b> MOV AH,2</b></p>
120、<p><b> INT 10H</b></p><p> LEA DX,MESSAGE4</p><p> MOV AH,9 </p><p><b> INT 21H</b></p><p><b> MOV AH,1</b></p&g
121、t;<p><b> INT 21H</b></p><p> CMP AL,79H </p><p><b> JNZ Q</b></p><p> CALL QUITT</p><p> Q:
122、 CMP AL,6EH</p><p><b> JZ QUIT</b></p><p> QUIT: WIN 0,07H,0,0,24,79</p><p> POS_CURSE 0,0,0</p><p> MOV AH,4CH</p><p&g
123、t;<b> INT 21H</b></p><p><b> RET</b></p><p> MENU_SHOW ENDP</p><p> NEW PROC NEAR ;新建文件</p><p><b> POS_GET<
124、/b></p><p><b> PUSH DX</b></p><p> CALL BACKDISPLAY</p><p> WIN 0,07H,15,10,17,61</p><p> WIN 0,24H,14,9,16,60,</p><p><b> MOV DH
125、,15</b></p><p><b> MOV DL,9</b></p><p><b> MOV BH,0</b></p><p><b> MOV AH,2</b></p><p><b> INT 10H</b></p&g
126、t;<p> LEA DX,MESSAGE1</p><p> CMP AL,0DH</p><p><b> MOV AH,9</b></p><p><b> INT 21H</b></p><p><b> MOV BX,0</b></p&g
127、t;<p><b> ALL:</b></p><p><b> MOV AH,1</b></p><p><b> INT 21H</b></p><p> CMP AL,0DH</p><p><b> JE ALLL</b>
128、</p><p> MOV PATH[BX],AL</p><p><b> INC BX</b></p><p><b> JMP ALL</b></p><p><b> ALLL:</b></p><p> WIN 0,3EH,15,9,
129、17,61</p><p><b> POP DX</b></p><p> POS_CURSE 0,DH,DL</p><p> LEA DX,PATH</p><p> MOV AH,3CH</p><p><b> MOV CX,00</b></p>
130、;<p><b> INT 21H</b></p><p> MOV HANDLE,AX</p><p><b> MOV BX,AX</b></p><p> MOV AH,3EH</p><p><b> INT 21H</b></p>
131、<p> WIN 0,3EH,1,0,23,79</p><p><b> MOV DH,1</b></p><p><b> MOV DL,0</b></p><p><b> MOV BH,0</b></p><p><b> MOV AH,
132、2</b></p><p><b> INT 10H</b></p><p> JMP CHAR_GET</p><p> NEW ENDP</p><p> OPEN_2: JMP OPEN</p><p> SAVEAS PROC NE
133、AR ;另存為文件 </p><p> WIN 0,3EH,1,0,6,10</p><p> CALL BACKDISPLAY</p><p> WIN 0,07H,15,10,17,61</p><p> WIN 0,24H,14,9,16,60,</p><p><b>
134、MOV DH,15</b></p><p><b> MOV DL,9</b></p><p><b> MOV BH,0</b></p><p><b> MOV AH,2</b></p><p><b> INT 10H</b>&l
135、t;/p><p> LEA DX,MESSAGE2</p><p><b> MOV AH,9</b></p><p><b> INT 21H</b></p><p><b> MOV BX,0</b></p><p><b> BLL
136、:</b></p><p><b> MOV AH,1</b></p><p><b> INT 21H</b></p><p> CMP AL,0DH</p><p><b> JE BLLL</b></p><p> MOV P
137、ATH[BX],AL</p><p><b> INC BX</b></p><p><b> JMP BLL</b></p><p><b> BLLL:</b></p><p><b> POS_GET</b></p><p
138、><b> PUSH DX</b></p><p> WIN 0,3EH,1,0,23,79</p><p> CALL BACKDISPLAY</p><p><b> POP DX</b></p><p> POS_CURSE 0,DH,DL</p><p&g
139、t; LEA DX,PATH</p><p> MOV AH,3CH</p><p><b> MOV CX,00</b></p><p><b> INT 21H</b></p><p> MOV HANDLE,AX</p><p> LEA DX,BUFFER
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 簡易文本編輯器課程設(shè)計(jì)報(bào)告
- 文本編輯器課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---簡易文本編輯器
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--簡易文本編輯器
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-簡易文本編輯器
- 文本編輯器課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)--文本編輯器
- java課程設(shè)計(jì)---文本編輯器
- java課程設(shè)計(jì)---文本編輯器
- vb課程設(shè)計(jì)文本編輯器
- java課程設(shè)計(jì)(文本編輯器)
- c語言課程設(shè)計(jì)--文本編輯器
- vb課程設(shè)計(jì)報(bào)告----文本編輯器
- vb課程設(shè)計(jì)報(bào)告---文本編輯器
- c_文本編輯器課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--文本編輯器
- 操作系統(tǒng)課程設(shè)計(jì)---文本編輯器
- 文本編輯器
- c_編寫的文本編輯器課程設(shè)計(jì)
- visual_basic課程設(shè)計(jì)報(bào)告---文本編輯器
評(píng)論
0/150
提交評(píng)論