匯編語言課設(shè) 文本編輯器
《匯編語言課設(shè) 文本編輯器》由會員分享,可在線閱讀,更多相關(guān)《匯編語言課設(shè) 文本編輯器(45頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、- 匯編語言課程設(shè)計 說明書 學(xué) 院: 軟件學(xué)院 專 業(yè): 軟件工程 學(xué)生: 馬江濤 學(xué) 號: 題 目: 文本編輯器 指導(dǎo)教師: 夠喜 廣貞 劍 馬巧梅 2016年 1 月 . z. - 目錄 摘 要I 一、課程
2、設(shè)計的目的- 1 - 1.1設(shè)計的目的- 1 - 1.2 設(shè)計的容- 1 - 二、設(shè)計方案的論證- 2 - 2.1 開發(fā)背景- 2 - 2.2 程序設(shè)計的意義- 2 - 2.3設(shè)計思路- 2 - 三、設(shè)計的實(shí)現(xiàn)過程- 3 - 3.1 總體設(shè)計方案- 3 - 3.2 實(shí)現(xiàn)過程- 3 - 3.3 數(shù)據(jù)定義- 4 - 3.4模塊設(shè)計- 6 - 四、調(diào)試運(yùn)行及結(jié)果分析- 9 - 4.1 運(yùn)行結(jié)果- 9 - 4.2 結(jié)果分析- 12 - 五、測試及問題探討- 13 - 5.1程序測試- 13 - 六、課設(shè)總結(jié)與體會- 16 - 七、參考文獻(xiàn)- 17 - 附
3、錄- 18 - . z. - 摘 要 文本編輯器在我們的日常生活中使用非常頻繁,是我們工作當(dāng)中不可或缺的工具。我們經(jīng)常使用的文本編輯器有微軟的記事本和Microsoft Word。但是本次課程設(shè)計我使用了8086匯編語言實(shí)現(xiàn)了DOS下的簡易文本編輯器,雖然與平時使用的文本編輯器相比功能比擬簡單,也不夠完善。但是旨在考察匯編語言的運(yùn)用以及軟件的實(shí)現(xiàn)過程。 本次設(shè)計以設(shè)計思路為主介紹簡易文檔編輯器的設(shè)計實(shí)現(xiàn)程,對其設(shè)計原理進(jìn)展一定的闡述,并且分模塊對其中較為重要的 子程序進(jìn)展講解,并且附上運(yùn)行結(jié)果及匯編源程序。 關(guān)鍵字:文本編輯
4、器、匯編語言、DOS . z. - 一、課程設(shè)計的目的 1.1 設(shè)計的目的 掌握匯編語言的使用,掌握BIOS、DOS功能調(diào)用的使用方法,以及對匯編語言程序設(shè)計的過程有較深刻的理解。 1.2 設(shè)計的容 本次設(shè)計主要包括一下容: 1. 美觀且易于操作的界面; 2. 在文本編輯區(qū)可以隨意輸入字符; 3. 可以使用Backspace鍵對光標(biāo)的前一個字符刪除; 4. 實(shí)現(xiàn)了光標(biāo)上移、下移、左移、右移; 5. 實(shí)現(xiàn)了下拉菜單以及彈出式菜單; 6. 可以實(shí)現(xiàn)屏幕的上卷和下卷; 二、設(shè)計方案的論證 2.1 開發(fā)背景
5、 本次開發(fā)主要是在"微機(jī)原理與接口技術(shù)"這門課學(xué)習(xí)完成之后,通過做一些實(shí)用的小軟件考察自己的學(xué)習(xí)情況。并且熟悉匯編語言開發(fā)程序的過程。 2.2 程序設(shè)計的意義 由于信息化的普遍,所以文本編輯器在我們工作中也是必不可少的,所以我選擇了開發(fā)文本編輯器,不只為人們帶來了便利,同時也能鍛煉自己開發(fā)思路,熟悉匯編語言開發(fā)過程,以及提高軟件開發(fā)水平。 常見的有Windows下的記事本,Mac OS X下的文本編輯,Linux下的vi、emacs、gedit、DOS下的edit等。本次設(shè)計類似于DOS下的edit。 2.3 設(shè)計思路 本程序主要利用BIOS功能調(diào)用設(shè)計編輯器的菜單和編輯窗口,以
6、及光標(biāo)的定位與獲取。利用DOS功能調(diào)用實(shí)現(xiàn)字符的讀取與輸出,以及對按鍵的識別。通過對光標(biāo)以及字符輸出來控制刪除以及上下左右鍵的控制。 三、設(shè)計的實(shí)現(xiàn)過程 3.1 總體設(shè)計方案 程序利用模塊化設(shè)計方法,對每個要實(shí)現(xiàn)的功能都設(shè)計成子程序,方便使用。程序中具體模塊如圖3-1。 主程序 繪制界面 按鍵判斷 子菜單繪制 功能的實(shí)現(xiàn) display dis_edit 圖3-1 程序關(guān)系 3.2 實(shí)現(xiàn)過程 程序通過對BIOS和DOS的功能調(diào)用實(shí)現(xiàn)了對窗口、菜單、字符輸入輸出、按鍵識別等功能。程序整體利用了模塊化的程序設(shè)計方法,把每個功能模塊都分成子程序來分別調(diào)用。程序中主要用到
7、了以下子程序: l display(顯示菜單欄); l dis_edit(顯示編輯窗口); l dis_file(顯示文件菜單); l dis_text(顯示文本菜單); l key_back(backspace刪除字符); l key_down(光標(biāo)向下); l key_left(光標(biāo)向左); l key_up(光標(biāo)向上); l key_right(光標(biāo)向右); l key_pgup(菜單的循環(huán)選擇); l ok_exit(退出); l open(子菜單顯示及控制); 3.3 數(shù)據(jù)定義 程序中要顯示的字符串都事先在數(shù)據(jù)段DS和附加段ES中定義好了,由于功能調(diào)用
8、的需要所以把數(shù)據(jù)定義在了數(shù)據(jù)段和附加段中。以下是程序中用到數(shù)據(jù)的定義: data segment s db 'File View Text About$' f1 db 'Open',10,13,'Exit',10,13,'$' f2 db 'Clear$' i db 0 b db 0 buff db 1200 dup("),'$' printf db "Can't open the File$" mss db 'Massage$' ab1 db 'About Edit$' ab2 db 'GaoHaiFeng$' ab3 d
9、b 'C1141$' ab4 db '2013-6-22$' q1 db '543589796$' data ends eata segment s1 db 'File$' s2 db 'View$' s3 db 'Text$' s4 db 'About$' s5 db 'Open$' s6 db 'Exit$' s7 db 'Clear$' eorr db 'eorr:$' ok db 5bh,'OK',5dh,'$' design db 'Design:$' class db 'Class:$' date db 'Date:$
10、' qq db 'QQ:$' eata ends 事先定義好數(shù)據(jù)的構(gòu)造可以減少程序設(shè)計中很多的麻煩。 3.4 模塊設(shè)計 3.4.1繪制界面 主要利用了BIOS功能調(diào)用繪制了兩個窗口,一個是編輯區(qū),一個是菜單欄。實(shí)現(xiàn)過程見圖3-4-1。 開場 繪制編輯區(qū) 繪制菜單欄 返回 主程序 圖3-4-1 繪制界面 3.4.2 檢測按鍵 這個模塊主要是利用了AL=0,INT 16H來實(shí)現(xiàn)的,其中AH中存放的是按鍵的掃描碼,AL中存放的是按鍵的ascii碼。具體實(shí)現(xiàn)過程見圖3-4-2。 開場 等待輸入 AH=0" 按鍵處理 輸出字符 返回 主程序 否 是
11、 圖3-4-2 檢測按鍵 3.4.3 子菜單繪制 該模塊同樣采用了BIOS功能調(diào)用設(shè)置子菜單,具體操作見圖3-4-3。 開場 繪制File 子菜單 繪制View 子菜單 繪制Text 子菜單 繪制About 子菜單 返回 主程序 圖3-4-3 繪制子菜單 四、調(diào)試運(yùn)行及結(jié)果分析 4.1 運(yùn)行結(jié)果 程序的主界面,包含有File,View,Text,About菜單,如圖4-1所示。 圖4-1 程序主界面 按下PgUp鍵對菜單進(jìn)展循環(huán)選擇,綠色光帶顯示當(dāng)前選中菜單,按任意除PgUp之外的按鍵切換到編輯區(qū),如圖4-2所示。 圖4-2 選擇菜單
12、 File菜單包括Open和Exit子菜單,如圖4-3所示。 圖4-3 下拉菜單 當(dāng)光帶選中Open或者Exit時按下回車鍵,將執(zhí)行光帶所選中的子菜單項所對應(yīng)的程序,圖中為選中Open,如圖4-4所示。 圖4-4 選擇Open Text菜單下只有一個Clear,用來清屏,如圖4-5所示。 圖4-5 text子菜單 About主要用來顯示作者以及開發(fā)的相關(guān)信息,如圖4-6. 圖4-6 選中About 4.2 結(jié)果分析 本程序主要仿照DOS下的Edit文本編輯器,但是由于時間的關(guān)系有些功能未實(shí)現(xiàn),主要實(shí)現(xiàn)了菜單的彈出、選擇、光標(biāo)的移動、文本的刪除、屏幕上卷等功能。 五、測
13、試及問題探討 5.1 程序測試 首先是測試文本編輯區(qū),如圖5-1. 圖5-1 編輯測試 然后是測試菜單彈出后文本區(qū)的容是否被抹掉,如圖5-2和5-3所示。 圖5-2 文本區(qū)保存 圖5-3 文本區(qū)回復(fù) 接下來是測試清屏菜單項,如圖5-4和5-5所示。 圖5-4 選中Clear 圖5-5 文本清屏 . z. - 六、課設(shè)總結(jié)與體會 通過本次課程設(shè)計可以說收獲頗多,雖然在程序設(shè)計的過程中遇到很多問題,其中想過放棄,也曾因此徹夜不眠過,甚至有思路就立馬把程序?qū)懗鰜?。但最終都在教師的幫助和自己的努力下走過來了。做完了這個
14、程序之后感覺對匯編的理解更加深刻了,也似乎懂得了開發(fā)底層軟件的原理。雖然匯編和其它程序設(shè)計語言相比麻煩很多,但是匯編是通過對計算機(jī)底層硬件的控制來到達(dá)人機(jī)交互的效果或者是實(shí)現(xiàn)了人們需要的功能。可以說了解了計算機(jī)大體的工作過程,為以后學(xué)習(xí)嵌入式系統(tǒng)以及計算機(jī)底層方面做了鋪墊。 . z. - 七、參考文獻(xiàn) [1]呂林濤. 微型計算機(jī)原理與接口技術(shù).科學(xué).2011年5月 [2]王延松.微機(jī)原理與接口技術(shù)實(shí)踐教程.2011年9月 [3]美明.IBM-PC匯編語言程序設(shè)計.清華大學(xué).2001年8月 .
15、 z. - 附錄 源程序: data segment s db 'File View Text About$' f1 db 'Open',10,13,'Exit',10,13,'$' f2 db 'Clear$' i db 0 b db 0 buff db 1200 dup("),'$' printf db "Can't open the File$" mss db 'Massage$' ab1 db 'About Edit$' ab2 db 'GaoHaiFeng$' ab3 db 'C1141$'
16、ab4 db '2013-6-22$' q1 db '543589796$' data ends eata segment s1 db 'File$' s2 db 'View$' s3 db 'Text$' s4 db 'About$' s5 db 'Open$' s6 db 'Exit$' s7 db 'Clear$' eorr db 'eorr:$' ok db 5bh,'OK',5dh,'$' design db 'Design:$' class db 'Class:$' date db 'Date:$' qq db 'QQ
17、:$' eata ends stack segment dw 1000 dup(") stack ends code segment assume ds:data,cs:code,ss:stack,es:eata start: mov ax,data mov ds,ax mov ax,eata mov es,ax mov ah,0 mov al,3 int 10h call display ;顯示菜單欄 call dis_edit ;顯示編輯區(qū) mov ah,4ch int 21h display proc near ;顯示菜單欄
18、 mov ah,6 mov al,0 mov ch,0 mov cl,0 mov dh,0 mov dl,79 mov bh,70h int 10h mov ah,6 mov al,1 mov ch,0 mov cl,0 mov dh,0 mov dl,79 mov bh,70h int 10h mov ah,2 mov bh,0 mov dh,0 mov dl,0 int 10h mov ah,09h lea dx,s int 21h ret display endp dis_edit p
19、roc near ;顯示編輯區(qū) mov di,0 ;作為緩存指針 mov ah,6 mov al,0 mov ch,1 mov cl,0 mov dh,24 mov dl,79 mov bh,1eh int 10h mov ah,6 mov al,1 mov ch,1 mov cl,0 mov dh,24 mov dl,79 mov bh,1eh int 10h pgup_r: mov ah,2 mov bh,0 mov dh,1 mov dl,0 int 10h next1: mov cx,80 n
20、ext: mov ah,00h ;從鍵盤讀取字符 int 16h cmp al,1bh ;判斷輸入的字符是否是ESC jz exit cmp al,0dh ;判斷輸入的字符是否是回車 jz enter cmp ah,48h ;判斷按鍵是否是上,ah中存放的是特殊鍵盤掃描碼 jz di_up cmp ah,4bh ;判斷是否是左 jz di_left cmp ah,4dh ;判斷是否是右 jz di_right cmp ah,50h ;判斷是否是下 jz di_down cmp ah,49h ;判斷是否是pgup鍵按下 j
21、z di_pgup cmp ah,0eh jz di_back mov buff[di],al ;每次接收一個字符時都存放到BUFF中 inc di mov buff[di],'$' mov dl,al ;al中存放的是普通字符的ascii碼 mov ah,2 int 21h loop next jmp next1 ;這里相當(dāng)于無限循環(huán),CX的值不起作用 enter: mov buff[di],10 inc di mov bu
22、ff [di],13 inc di mov ah,3 ;獲取光標(biāo)位置 mov bh,0 int 10h cmp dh,24 ;判斷回車之后是否是行尾 jz go_again mov ah,2 mov bh,0 inc dh mov dl,0 int 10h jmp next1 di_up: call key_up ;這里不需要重新定義CX的值,程序會自動換行 jmp next1 di_left:call key_left ;調(diào)用左移子程序 jmp next1 di_right:call key_right ;調(diào)用右移子程序 jm
23、p next1 di_down:call key_down ;調(diào)用下移子程序 jmp next1 di_pgup:call key_pgup ;調(diào)用pgup子程序 jmp pgup_r di_back:call key_back jmp next1 go_again:call dis_loop ;上卷一行定位到行尾 jmp next1 exit: mov ah,6 mov al,0 mov ch,0 mov cl,0 mov dh,24 mov dl,79 int 10h ret dis_edit endp dis_loop proc
24、near ;編輯區(qū)上卷一行光標(biāo)定位到行尾 mov ah,6 mov al,1 mov ch,1 mov cl,0 mov dh,24 mov dl,79 mov bh,1eh int 10h mov ah,2 mov bh,0 mov dh,24 mov dl,0 int 10h ret dis_loop endp key_up proc near mov ah,3 ;讀取光標(biāo)位置 mov bh,0 int 10h cmp dh,1 jz rodown mov ah,2 ;定位光標(biāo)位置 dec dh
25、 int 10h return: ret rodown: call roll_down jmp return key_up endp roll_down proc near ;屏幕下卷 mov ah,7 mov al,1 mov ch,1 mov cl,0 mov dh,24 mov dl,79 mov bh,1eh int 10h mov ah,3 ;讀取光標(biāo)位置 mov bh,0 int 10h mov ah,2 ;定位光標(biāo)位置 int 10h ret roll_down endp key_left proc ne
26、ar mov ah,3 ;讀取光標(biāo)位置 mov bh,0 int 10h cmp dl,0 ;判斷是否到了第一列 jz go_left ;是的話移到上一行行尾 mov ah,2 mov bh,0 dec dl int 10h jmp ret1 go_left:cmp dh,1 jnz roll_up mov ah,6 mov al,1 mov ch,1 mov cl,0 mov dh,24 mov dl,79 mov bh,1eh int 10h mov ah,2 mov bh,0 mov dl,79
27、 mov dh,1 int 10h jmp ret1 roll_up:mov ah,2 ;移到上一行行尾 mov bh,0 dec dh mov dl,79 int 10h ret1: ret key_left endp key_right proc near mov ah,3 ;讀取光標(biāo)位置 mov bh,0 int 10h cmp dl,79 jnz go_right cmp dh,24 jnz on_ok mov ah,6 mov al,1 mov ch,1 mov cl,0 mov dh,24 mov
28、dl,79 mov bh,1eh int 10h mov ah,2 mov bh,0 mov dh,24 mov dl,0 int 10h jmp ret2 on_ok: mov ah,2 mov bh,0 inc dh mov dl,0 int 10h jmp ret2 go_right: mov ah,2 mov bh,0 inc dl int 10h ret2: ret key_right endp key_down proc near mov ah,3 mov bh,0 int 10h cmp d
29、h,24 jnz m_down mov ah,6 mov al,1 mov ch,1 mov cl,0 mov dh,24 mov dl,79 mov bh,1eh int 10h mov ah,3 mov bh,0 int 10h mov ah,2 mov bh,0 mov dh,24 int 10h jmp ret3 m_down: mov ah,2 mov bh,0 inc dh int 10h ret3: ret key_down endp key_pgup proc near ;按下pgup鍵的處
30、理過程 st_pgdn:call display cmp i,0 jnz nt ;判斷當(dāng)前的菜單項是第幾個 mov ah,6 ;菜單項處清屏 mov al,0 mov bh,1fh mov ch,0 mov cl,0 mov dh,0 mov dl,3 int 10h mov ah,13h ;bios輸出字符串 mov al,0 mov cx,4 mov dh,0 mov dl,0 mov bl,0a5h mov bh,0 lea bp,s1 int 10h jmp ret0 nt: cmp i,1 j
31、nz nt1 mov bh,1fh mov ah,6 mov al,0 mov ch,0 mov cl,9 mov dh,0 mov dl,12 int 10h mov ah,13h ;bios輸出字符串 mov al,0 mov cx,4 mov dh,0 mov dl,9 mov bl,0a5h mov bh,0 lea bp,s2 int 10h jmp ret0 nt1: cmp i,2 jnz nt2 mov bh,1fh mov ah,6 ;小菜單清屏 mov al,0 mov ch,0
32、 mov cl,18 mov dh,0 mov dl,21 int 10h mov ah,13h ;bios輸出字符串 mov al,0 mov cx,4 mov dh,0 mov dl,18 mov bl,0a5h mov bh,0 lea bp,s3 int 10h jmp ret0 nt2: cmp i,3 jnz nt1 mov bh,1fh mov ah,6 mov al,0 mov ch,0 mov cl,27 mov dh,0 mov dl,30 int 10h mov ah,13
33、h ;bios輸出字符串 mov al,0 mov cx,5 mov dh,0 mov dl,27 mov bl,0a5h mov bh,0 lea bp,s4 int 10h ret0: inc i cmp i,4 jnz rtt mov i,0 rtt: mov ah,0h int 16h cmp ah,49h jz st_pgdn cmp al,0dh ;判斷是否是回車 jnz rt0 cmp i,0 jnz lol call dis_about jmp rt0 lol: cmp i,1 jnz
34、qqq call dis_file jmp rt0 qqq: cmp i,3 jnz rtt ;不確定 call dis_text rt0: cmp i,1 jnz ntf mov ah,6 ;菜單項處清屏 mov al,0 mov bh,70h mov ch,0 mov cl,0 mov dh,0 mov dl,3 int 10h mov ah,13h ;bios輸出字符串 mov al,0 mov cx,4 mov dh,0 mov dl,0 mov bl,70h mov bh,0 lea b
35、p,s1 int 10h jmp rrr ntf: cmp i,2 jnz ntf1 mov bh,70h mov ah,6 mov al,0 mov ch,0 mov cl,9 mov dh,0 mov dl,12 int 10h mov ah,13h ;bios輸出字符串 mov al,0 mov cx,4 mov dh,0 mov dl,9 mov bl,70h mov bh,0 lea bp,s2 int 10h jmp rrr ntf1: cmp i,3 jnz ntf2 mov bh,
36、70h mov ah,6 ;小菜單清屏 mov al,0 mov ch,0 mov cl,18 mov dh,0 mov dl,21 int 10h mov ah,13h ;bios輸出字符串 mov al,0 mov cx,4 mov dh,0 mov dl,18 mov bl,70h mov bh,0 lea bp,s3 int 10h jmp rrr ntf2: cmp i,0 jnz rrr mov bh,70h mov ah,6 mov al,0 mov ch,0 mov cl,27
37、mov dh,0 mov dl,30 int 10h mov ah,13h ;bios輸出字符串 mov al,0 mov cx,5 mov dh,0 mov dl,27 mov bl,70h mov bh,0 lea bp,s4 int 10h rrr: mov i,0 ret key_pgup endp dis_file proc near ;顯示File菜單 mov ah,6 mov al,0 mov bh,70h mov ch,1 mov cl,0 mov dh,2 mov dl,6 int 10
38、h mov ah,6 mov al,1 mov bh,70h mov ch,1 mov cl,0 mov dh,2 mov dl,6 int 10h mov ah,2 mov bh,0 mov dh,1 mov dl,0 int 10h mov ah,09h lea dx,f1 int 21h mov ah,00h int 16h cmp ah,50h ;如果按方向鍵下 jnz input an_don: cmp b,0 jnz haha mov ah,13h lea bp,s6 mov al,0
39、 mov cx,4 mov dh,2 mov dl,0 mov bh,0 mov bl,70h int 10h mov ah,13h lea bp,s5 mov al,0 mov cx,4 mov dh,1 mov dl,0 mov bh,0 mov bl,05ah int 10h jmp input haha: cmp b,1 jnz input mov ah,13h lea bp,s5 mov al,0 mov cx,4 mov dh,1 mov dl,0 mov bh,0 mov bl,
40、70h int 10h mov ah,13h lea bp,s6 mov al,0 mov cx,4 mov dh,2 mov dl,0 mov bh,0 mov bl,05ah int 10h input: inc b cmp b,2 jnz eee mov b,0 eee: mov ah,00 int 16h cmp ah,50h ;判斷是否是方向鍵下 jz an_don cmp ah,01h ;判斷是否是ESC jz rrr1 cmp al,0dh ;判斷是否是回車 jnz eee cmp b,1
41、 jnz cexit call open jmp rrr1 cexit: call ok_exit rrr1: mov ah,6 mov al,0 mov ch,1 mov cl,0 mov dh,24 mov dl,79 mov bh,1eh int 10h mov ah,6 mov al,1 mov ch,1 mov cl,0 mov dh,24 mov dl,79 mov bh,1eh int 10h call dis_buff ret dis_file endp dis_buff proc near
42、 mov ah,2 mov bh,0 mov dh,1 mov dl,0 int 10h mov ah,9 lea dx,buff int 21h ret dis_buff endp open proc near call display mov ah,6 mov al,0 mov ch,1 mov cl,0 mov dh,24 mov dl,79 mov bh,1eh int 10h call dis_buff ;顯示緩存數(shù)據(jù) mov ah,6 mov al,0 mov bh,70h mov ch
43、,6 mov cl,19 mov dh,6 mov dl,59 int 10h mov ah,6 ;彈出窗口message顯示區(qū) mov al,1 mov bh,70h mov ch,6 mov cl,19 mov dh,6 mov dl,59 int 10h mov ah,2 mov bh,0 mov dh,6 mov dl,34 int 10h mov ah,9 lea dx,mss int 21h mov ah,6 mov al,0 mov bh,5eh mov ch,7 mov cl,
44、19 mov dh,14 mov dl,59 int 10h mov ah,6 mov al,1 mov bh,5eh mov ch,7 mov cl,19 mov dh,14 mov dl,59 int 10h mov ah,13h ;顯示eoor lea bp,eorr mov al,0 mov cx,5 mov bh,0 mov bl,52h mov dh,10 mov dl,24 int 10h mov ah,2 mov bh,0 mov dh,10 mov dl,32 int 10h
45、 mov ah,9 lea dx,printf int 21h mov ah,13h lea bp,ok mov al,0 mov cx,4 mov bh,0 mov bl,70h mov dh,12 mov dl,37 int 10h sure: mov ah,00h int 16h cmp al,0dh jnz sure mov ah,6 mov al,0 mov ch,1 mov cl,0 mov dh,24 mov dl,79 mov bh,1eh int 10h call dis_buff
46、 ret open endp ok_exit proc proc mov ah,6 mov bh,0 mov al,0 mov ch,0 mov cl,0 mov dh,24 mov dl,79 int 10h mov ah,4ch int 21h ret ok_exit endp dis_text proc near mov ah,6 mov al,0 mov bh,70h mov ch,1 mov cl,18 mov dh,1 mov dl,24 int 10h mov ah,6 mov al
47、,1 mov bh,70h mov ch,1 mov cl,18 mov dh,1 mov dl,24 int 10h mov ah,2 mov bh,0 mov dh,1 mov dl,18 int 10h mov ah,09h lea dx,f2 int 21h mov ah,13h lea bp,s7 mov al,0 mov cx,5 mov dh,1 mov dl,18 mov bh,0 mov bl,05ah int 10h inpuu: mov ah,0 int 16h cmp
48、ah,01h jz r121 cmp al,0dh jnz r121 mov buff,'$' r121: mov ah,6 mov al,0 mov ch,1 mov cl,0 mov dh,24 mov dl,79 mov bh,1eh int 10h call dis_buff ret dis_text endp dis_about proc near mov ah,6 mov al,0 mov bh,70h mov ch,6 mov cl,19 mov dh,6 mov dl,59 int 10h
49、 mov ah,6 mov al,1 mov bh,70h mov ch,6 mov cl,19 mov dh,6 mov dl,59 int 10h mov ah,2 mov bh,0 mov dh,6 mov dl,34 int 10h mov ah,9 ;輸出About Edit lea dx,ab1 int 21h mov ah,6 mov al,0 mov bh,3eh mov ch,7 mov cl,19 mov dh,14 mov dl,59 int 10h mov ah,6
50、mov al,1 mov bh,3eh mov ch,7 mov cl,19 mov dh,14 mov dl,59 int 10h mov ah,13h lea bp,design ;顯示design mov cx,7 mov dh,8 mov dl,30 mov bh,0 mov bl,30h int 10h mov ah,6 ;顯示CLASS處清屏 mov al,0 mov bh,30h mov ch,9 mov cl,30 mov dh,9 mov dl,38 int 10h mov ah,13
51、h lea bp,class ;顯示class mov cx,5 mov dh,9 mov dl,30 mov bh,0 mov bl,31h int 10h mov ah,6 ;顯示date處清屏 mov al,0 mov bh,3eh mov ch,10 mov cl,30 mov dh,10 mov dl,38 int 10h mov ah,13h lea bp,date ;顯示日期 mov cx,5 mov dh,10 mov dl,30 mov bh,0 mov bl,30h int 10h
52、 mov ah,6 ;顯示QQ處清屏 mov al,0 mov bh,3eh mov ch,11 mov cl,30 mov dh,11 mov dl,38 int 10h mov ah,13h lea bp,qq ;顯示QQ mov cx,3 mov dh,11 mov dl,30 mov bh,0 mov bl,30h int 10h mov ah,2 mov bh,0 mov dh,8 mov dl,42 int 10h mov ah,9 ;顯示 lea dx,ab2 int 21h mov
53、 ah,2 mov bh,0 mov dh,9 mov dl,42 int 10h mov ah,9 ;顯示 lea dx,ab3 int 21h mov ah,2 mov bh,0 mov dh,10 mov dl,42 int 10h mov ah,9 lea dx,ab4 int 21h mov ah,2 mov bh,0 mov dh,11 mov dl,42 int 10h mov ah,9 ;顯示 lea dx,q1 int 21h mov ah,13h ;顯示OK lea bp,o
54、k mov al,0 mov cx,4 mov bh,0 mov bl,70h mov dh,13 mov dl,37 int 10h check: mov ah,0 int 16h cmp al,0dh jnz check mov ah,6 mov al,0 mov ch,1 mov cl,0 mov dh,24 mov dl,79 mov bh,1eh int 10h mov ah,6 mov al,1 mov ch,1 mov cl,0 mov dh,24 mov dl,79 mov b
55、h,1eh int 10h mov ah,2 mov bh,0 mov dh,1 mov dl,0 int 10h call dis_buff ret dis_about endp key_back proc near mov ah,3 mov bh,0 int 10h cmp dh,1 jnz ba2 cmp dl,0 jnz back1 mov ah,2 ;當(dāng)光標(biāo)在第一行第0列時 mov bh,0 mov dh,1 mov dl,0 int 10h mov ah,2 mov dl,0 int
56、21h mov ah,2 ;光標(biāo)回退 mov bh,0 mov dh,1 mov dl,0 int 10h jmp rsd ba2: cmp dl,0 jnz back1 mov ah,2 mov bh,0 dec dh mov dl,79 int 10h mov ah,2 mov dl,0 int 21h mov ah,3 mov bh,0 int 10h mov ah,2 ;光標(biāo)回退 mov bh,0 dec dh mov dl,79 int 10h jmp rsd back1: mov ah,2 ;當(dāng)光標(biāo)不是在第一行以及不在第0列時 mov bh,0 dec dl int 10h mov ah,2 mov dl,0 int 21h mov ah,3 mov bh,0 int 10h mov ah,2 ;光標(biāo)回退 mov bh,0 dec dl int 10h jmp rsd rsd: dec di mov buff[di],'$' ret key_back endp code ends end start . z.
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 川渝旅游日記成都重慶城市介紹推薦景點(diǎn)美食推薦
- XX國有企業(yè)黨委書記個人述責(zé)述廉報告及2025年重點(diǎn)工作計劃
- 世界濕地日濕地的含義及價值
- 20XX年春節(jié)節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)人到場心到崗
- 大唐女子圖鑒唐朝服飾之美器物之美繪畫之美生活之美
- 節(jié)后開工第一課輕松掌握各要點(diǎn)節(jié)后常見的八大危險
- 廈門城市旅游介紹廈門景點(diǎn)介紹廈門美食展示
- 節(jié)后開工第一課復(fù)工復(fù)產(chǎn)十注意節(jié)后復(fù)工十檢查
- 傳統(tǒng)文化百善孝為先孝道培訓(xùn)
- 深圳城市旅游介紹景點(diǎn)推薦美食探索
- 節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)勿忘安全本心人人講安全個個會應(yīng)急
- 預(yù)防性維修管理
- 常見閥門類型及特點(diǎn)
- 設(shè)備預(yù)防性維修
- 2.乳化液泵工理論考試試題含答案