微機原理課程設(shè)計---霓虹燈的模擬顯示程序設(shè)計_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p><b>  目錄1</b></p><p>  “霓虹燈”的模擬顯示程序設(shè)計2</p><p>  1.設(shè)計意義與要求2</p><p><b>  1.1設(shè)計意義2</b></p><p&

2、gt;<b>  1.2設(shè)計要求2</b></p><p><b>  2.方案確定2</b></p><p>  3.系統(tǒng)原理闡述3</p><p><b>  3.1設(shè)計思路3</b></p><p>  3.2程序中的BIOS和DOS功能調(diào)用3</p>

3、;<p>  3.3.程序模塊4</p><p>  4.軟件思想與流程圖6</p><p>  4.1程序功能描述6</p><p><b>  4.2 流程圖6</b></p><p>  5.調(diào)試記錄及結(jié)果分析8</p><p>  5.1 調(diào)試過程8</p

4、><p><b>  5.2結(jié)果記錄8</b></p><p><b>  6.心得體會10</b></p><p><b>  7.參考文獻10</b></p><p>  8.附錄 源程序清單11</p><p>  “霓虹燈”的模擬顯示程序設(shè)計

5、</p><p><b>  1.設(shè)計意義與要求</b></p><p><b>  1.1設(shè)計意義</b></p><p>  通過課程設(shè)計,能夠?qū)λ鶎W(xué)知識有更進一步的理解,并能掌握學(xué)習(xí)理論時沒有注意的細(xì)節(jié)。調(diào)試程序,排除故障有助于提高分析問題、解決問題的能力。課程設(shè)計中碰到的挫折,有助于養(yǎng)成良好的學(xué)習(xí)習(xí)慣、嚴(yán)謹(jǐn)?shù)墓ぷ髯?/p>

6、風(fēng)。</p><p>  通過此課程設(shè)計的匯編語言練習(xí),可以熟悉匯編語言的尋址方式和指令系統(tǒng),BIOS和DOS系統(tǒng)功能調(diào)用,程序設(shè)計方法并熟悉匯編的編程環(huán)境。</p><p><b>  1.2設(shè)計要求</b></p><p>  設(shè)計內(nèi)容:設(shè)計霓虹閃爍的色彩與圖案,運行程序自動循環(huán)進行霓虹閃爍,直至單擊“ESC”鍵退出程序。</p>

7、;<p><b>  設(shè)計要求:</b></p><p><b>  設(shè)計任務(wù)及要求分析</b></p><p><b>  方案確定及任務(wù)說明</b></p><p><b>  系統(tǒng)原理闡述</b></p><p>  程序說明:程序思想

8、,流程圖</p><p><b>  調(diào)試記錄及結(jié)果分析</b></p><p><b>  總結(jié)</b></p><p><b>  參考資料</b></p><p><b>  附錄:源程序</b></p><p><b&

9、gt;  2.方案確定</b></p><p>  運用BIOS功能的9號調(diào)用,程序設(shè)計如下:</p><p>  CALL CURSOR ;調(diào)用光標(biāo)設(shè)置子程序</p><p>  MOV AL,23H</p><p>  MOV BL,0BH</p><p><b>  PUSH C

10、X</b></p><p><b>  MOV CX1</b></p><p>  MOV AH,09H</p><p><b>  INT 10H</b></p><p><b>  POP CX</b></p><p>  這個程序設(shè)計起

11、來占用寄存器較多,略微復(fù)雜點,但是它的功能更加完備,更能實現(xiàn)霓虹燈的顏色變化顯示效果,給人一種美感。</p><p><b>  3.系統(tǒng)原理闡述</b></p><p><b>  3.1設(shè)計思路</b></p><p>  (1) 執(zhí)行程序時顯示一個歡迎界面,提示按大寫S鍵進入顯示界面</p><p

12、>  (2) 執(zhí)行程序這部分程序運用的主要原理是先在屏幕上顯示個字符#(&)號,再執(zhí)行循環(huán),語句顯示一行(列)#(&)字符。利用像這樣的原理實現(xiàn)矩形框的完成。至于反向消失部分,用空格代替想要顯示的字符,反向執(zhí)行循環(huán),就可以實現(xiàn)字符的消失了。</p><p>  (3) 霓虹燈顯示完畢,提示輸入ESC退出界面,若輸入其他字符繼續(xù)循環(huán)顯示。</p><p>  3.2程序

13、中的BIOS和DOS功能調(diào)用</p><p>  3.2.1 BIOS功能調(diào)用</p><p>  (1) 設(shè)置光標(biāo)位置(2號功能)</p><p>  入口參數(shù):AH=2(功能號),BH=頁號,DH=行號,DL=列號。</p><p>  出口參數(shù):無。根據(jù)DX確定了光標(biāo)位置。</p><p>  (2) 初始窗口或

14、向上滾動(6號功能)</p><p>  入口參數(shù):AH=6,AL=上滾行數(shù),CX=上滾窗口左上角的行、列號。DX=上滾窗口右下角的行、列號。BH=空白行的屬性。</p><p>  出口參數(shù):無。當(dāng)滾動后,底部為空白輸入行</p><p>  (3) 在當(dāng)前光標(biāo)位置寫字符和屬性(9號功能)</p><p>  入口參數(shù):AH=9,BH=頁號

15、,AL=字符的ASCII碼,BL=字符屬性,CX=寫入字符數(shù)。</p><p><b>  出口參數(shù):無。</b></p><p>  3.2.2 DOS功能調(diào)用</p><p>  (1) 鍵盤輸入一個字符并回顯(1號功能)</p><p>  輸入?yún)?shù)無,返回結(jié)果AL=字符</p><p> 

16、 (2) 顯示字符串,光標(biāo)跟誰字符串移動(9號功能)</p><p>  DS:DX=待顯字符串的首地址字符串以‘$’結(jié)尾。</p><p>  (3) 顯示一個字符,光標(biāo)跟隨字符移動(2號功能)</p><p>  DL=待顯字符的ASCII碼,無返回結(jié)</p><p><b>  3.3.程序模塊</b></p

17、><p>  (1) 宏定義光標(biāo)位置</p><p>  MA MACRO OP1,OP2 ;宏定義光標(biāo)位置</p><p>  PUSH AX ;現(xiàn)場保護</p><p><b>  PUSH BX</b></p><p>  MOV AH,02H</p&

18、gt;<p>  MOV BH,0 ;頁號</p><p>  MOV DH,OP1 ;行號</p><p>  MOV DL,OP2 ;列號</p><p><b>  INT 10H</b></p><p><b>  POP B

19、X</b></p><p><b>  POP AX</b></p><p><b>  ENDM</b></p><p>  這個子程序的重點是設(shè)計光標(biāo)所在頁、行、列及其現(xiàn)場保護。使用了BIOS功能調(diào)用設(shè)置光標(biāo)的位置。</p><p><b>  (2) 清屏子程序</

20、b></p><p>  CLEAR PROC NEAR ;清屏</p><p>  MOV AH,06H </p><p><b>  MOV AL,0</b></p><p>  MOV CH,0 </p><p><b>  MOV CL,0</b&

21、gt;</p><p><b>  MOV DH,24</b></p><p><b>  MOV DL,79</b></p><p>  MOV BH,07H</p><p><b>  INT 10H</b></p><p><b>  R

22、ET</b></p><p>  CLEAR ENDP</p><p>  初始化窗口,AL=0表示全屏滾動,CH=滾動窗口左上角行號,CL=滾動窗口左上角列號,DH=滾動窗口右下角行號,DL=滾動窗口右下角列號,BH=滾入行的屬性。</p><p><b>  (3) 光標(biāo)的設(shè)置</b></p><p> 

23、 CURSOR PROC NEAR ;光標(biāo)的設(shè)置</p><p>  MOV AH,02H</p><p><b>  MOV BH,0 </b></p><p>  MOV DH,ROW ;設(shè)置行</p><p>  MOV DL,COLUME ;設(shè)置列</p><

24、;p><b>  INT 10H</b></p><p><b>  RET </b></p><p>  CURSOR ENDP </p><p>  光標(biāo)位置的設(shè)置,這個子程序與宏定義光標(biāo)位置類似只是運用有些不同。</p><p><b>  (4) 延時子程序</b&g

25、t;</p><p>  DELAY1 PROC NEAR</p><p>  PUSH CX</p><p>  PUSH DX</p><p>  MOV DX,100</p><p>  D3: MOV CX,65530</p>&

26、lt;p>  D4: LOOP D4</p><p>  DEC DX</p><p>  JNZ D3</p><p>  POP DX</p><p>  POP CX</p><p><b>  RET</b></p

27、><p>  DELAY1 ENDP</p><p>  這個子程序?qū)懛ǖ年P(guān)鍵是現(xiàn)場保護(即進棧出棧),內(nèi)外兩個循環(huán)的設(shè)計。延時程序的主要目的是可以讓我們清楚的看到字符在屏幕上的顯示過程。</p><p>  4.軟件思想與流程圖</p><p><b>  4.1程序功能描述</b></p><p&

28、gt;  程序開始,進行清屏,顯示歡迎界面。按鍵輸入,如果輸入S就執(zhí)行霓虹燈模擬顯示在屏幕中央以#字符顯示一矩形邊框,各邊框顏色不同,再按相反的次序消失的程序,接著出現(xiàn)在一次出現(xiàn)上述邊框再消失(使用另外四種顏色),否則就繼續(xù)等待輸入。霓虹燈模擬顯示程序執(zhí)行完后,顯示退出提示,等待輸入,如果輸入為ESC就退出程序,輸入其他字符重復(fù)上述流程。</p><p><b>  4.2 流程圖</b>&

29、lt;/p><p><b>  流程圖如下所示:</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  Y</b>

30、;</p><p>  5.調(diào)試記錄及結(jié)果分析</p><p><b>  5.1 調(diào)試過程</b></p><p>  調(diào)試過程主要由編輯、匯編、鏈接和執(zhí)行等幾個步驟組成。</p><p>  (1) 源程序的編輯:編輯好匯編語言源程序后,保存為.asm文件。</p><p>  (2) 源程

31、序的匯編:調(diào)用匯編程序?qū)υ闯绦蜻M行翻譯,生成.OBJ的目標(biāo)文件。在匯編過程中,源程序有錯誤生不成目標(biāo)文件,經(jīng)過多次修改最終生成目標(biāo)文件。</p><p>  (3) 目標(biāo)程序的連接:調(diào)用鏈接程序(LINK)將用戶目標(biāo)程序和庫文件進行鏈接、定位,生成.EXE可執(zhí)行文件。</p><p>  (4) 調(diào)試可執(zhí)行程序:剛開始可執(zhí)行程序運行之后沒有得到預(yù)想的結(jié)果,又重新檢查源程序的算法錯誤,重新編

32、輯、匯編、鏈接和執(zhí)行,得到了預(yù)想的結(jié)果。</p><p><b>  5.2結(jié)果記錄</b></p><p>  經(jīng)過很多次調(diào)試,分析修改完善,終于得到正確調(diào)試結(jié)果。</p><p>  執(zhí)行程序,輸入界面如圖1所示</p><p><b>  圖1 輸入界面</b></p><

33、p>  (2)輸入S后,執(zhí)行程序如下圖圖2、圖3所示,2是第一個框,圖3是第二個框</p><p><b>  圖2 第一個框圖</b></p><p><b>  圖3 第二個框圖</b></p><p>  提示輸入ESC界面如圖4</p><p><b>  圖4 退出提示界面

34、</b></p><p>  由以上調(diào)試得到的圖形可知,調(diào)試結(jié)果與預(yù)期結(jié)果是一致的,程序可實現(xiàn)預(yù)期的功能。</p><p><b>  6.心得體會</b></p><p>  通過這次的課程設(shè)計,讓我對匯編有了更進一步的認(rèn)識,加強了我用匯編語言編程的能力。</p><p>  在設(shè)計過程中,不斷對程序進行修

35、改、改進,增強了自己分析問題、解決問題的能力;在不斷的調(diào)試中,也讓自己發(fā)現(xiàn)了自己存在的一些錯誤以及一些調(diào)試時應(yīng)注意的問題,同時也更深的理解了寄存器、存儲器等工作原理以及一些指令執(zhí)行后對它們的改變。</p><p>  這次的匯編課程設(shè)計,我的題目是霓虹燈的模擬顯示。雖然在設(shè)計過程中遇到了不少問題,比如運行界面出現(xiàn)亂碼、字符不是出現(xiàn)在預(yù)期位置等等問題,但在不斷的修改和嘗試中慢慢地解決這些問題,心里也有一種莫名的喜悅

36、之感,正是這種感覺,使我對這門課產(chǎn)生了更加濃厚的興趣,對本次課程設(shè)計更加用心和認(rèn)真。這次向老師問了兩次,向同學(xué)請教過很多問題,使我的基礎(chǔ)知識更加牢靠。</p><p>  其實很早我就把程序?qū)懞昧耍贿^很爛,后來經(jīng)過幾天的修改調(diào)試最終達到了自己覺得還過得去的要求</p><p>  總之,這次課程設(shè)計我鍛煉了動手能力,熟悉了匯編的編程環(huán)境,并鞏固了課程相關(guān)知識,收益很多。實踐出真知,在課程

37、設(shè)計中不忘在小處創(chuàng)新,希望在下一次課程設(shè)計中能有更大的突破!</p><p><b>  7.參考文獻</b></p><p>  [1]湯書森.《微機原理接口技術(shù)實驗于實踐教程》.北京:清華大學(xué)出版社,2008</p><p>  [2]余朝琨.《IBM-PC匯編語言程序設(shè)計》.北京:機械工業(yè)出版社. 2008</p><

38、p>  [3]宋江.《微機原理與接口技術(shù)》.北京:機械工業(yè)出版社. 2005</p><p>  [4]金泉涌.《微型計算機應(yīng)用經(jīng)驗匯編》.北京:清華大學(xué)出版社,2007</p><p>  [5]沈美玲.《IBM-PC匯編語言程序設(shè)計》.北京:清華大學(xué)出版社,1993</p><p>  [6]吳耿峰.《十六位微型計算機原理接口及應(yīng)用》.北京:高等教育出版.

39、2004</p><p>  8.附錄 源程序清單</p><p>  MA MACRO OP1,OP2 ;宏定義光標(biāo)位置</p><p>  PUSH AX ;</p><p><b>  PUSH BX</b></p><p>  

40、MOV AH,02H</p><p>  MOV BH,0 ;頁號</p><p>  MOV DH,OP1 ;行</p><p>  MOV DL,OP2 ;列</p><p><b>  IN

41、T 10H</b></p><p><b>  POP BX</b></p><p><b>  POP AX</b></p><p><b>  ENDM</b></p><p>  STACK SEGMENT PARA STACK 'Stack'

42、 ;定義堆棧段</p><p>  STACK ENDS</p><p>  DATASEG SEGMENT PARA 'Data' ;定義數(shù)據(jù)段</p><p>  ROW DB '?'</p><p>  COLUME DB '?'</p>

43、<p>  COUNT DB '?'</p><p>  COUNT1 DB '?' </p><p>  CT DB '?' </p><p>  MENU DB '******************************************',0dh,0ah

44、 ;</p><p>  DB '** **',0dh,0ah</p><p>  DB '** welcome you ! **',0dh,0ah</p><p>  DB '**

45、 **',0dh,0ah</p><p>  DB '** programme of displalying neon lamp **',0dh,0ah</p><p>  DB '** **',0dh,0ah</p&

46、gt;<p>  DB '** please press S to enter **',0dh,0ah</p><p>  DB '** and then press ESC to exit ! **',0dh,0ah</p><p>  DB '** MADE BY Ca

47、o **',0dh,0ah</p><p>  DB '******************************************$'</p><p>  BUF DB 'press ESC to exit ! $' </p><p>  DATASEG ENDS<

48、/p><p>  CODESEG SEGMENT PARA 'Code'</p><p>  ASSUME SS:STACK,DS:DATASEG,CS:CODESEG</p><p>  MAIN PROC FAR</p><p>  MOV AX,DATASEG</p><p>  MO

49、V DS,AX</p><p>  CALL CLEAR ;調(diào)用清屏子程序</p><p>  MA 8,0 ;歡迎界面的出現(xiàn)位置</p><p>  WAT0: LEA DX,MENU ;輸入S進入霓虹燈顯示</p><p&g

50、t;<b>  MOV AH,9</b></p><p><b>  INT 21H</b></p><p>  MOV AH,1 </p><p><b>  INT 21H</b></p><p>  CMP AL,'S'</p>

51、<p>  CALL CLEAR ;如果輸入的不是S就清屏</p><p><b>  MA 8,0</b></p><p><b>  JNZ WAT0</b></p><p>  PUSH AX ;入棧</p><p>

52、;<b>  PUSH BX </b></p><p><b>  PUSH CX</b></p><p><b>  PUSH DX</b></p><p>  MOV ROW,23 ;完成矩形框的左豎行</p><p>  MOV COLUME

53、,0</p><p><b>  CDD:</b></p><p>  LOP3:CALL CURSOR ;調(diào)用設(shè)置光標(biāo)位置</p><p>  MOV AL,23H ;把#的ASCII 碼傳遞給AL</p><p>  MOV BL,0BH

54、 ;設(shè)置字符屬性</p><p>  PUSH CX ;入棧</p><p>  MOV CX,1 ;字符顯示1次</p><p>  MOV AH,09H</p><p><b>  INT 10H</b></p><p&g

55、t;  POP CX ;出棧</p><p>  CALL DELAY1 ;調(diào)用延時</p><p>  DEC ROW ;行坐標(biāo)減1</p><p>  CMP ROW,0 ;若行坐標(biāo)大于0就跳轉(zhuǎn)到lop3否則執(zhí)行下個程序</

56、p><p><b>  JNZ LOP3</b></p><p><b>  MOV ROW,0</b></p><p>  MOV COLUME,0 ;完成矩形框的上行 </p><p>  LOP1: CALL CURSOR</p><p

57、>  MOV AL,23H</p><p>  MOV BL,0CH</p><p><b>  PUSH CX</b></p><p><b>  MOV CX,1</b></p><p>  MOV AH,09H</p><p><b>  INT 10H

58、</b></p><p><b>  POP CX</b></p><p>  CALL DELAY1</p><p>  INC COLUME</p><p>  CMP COLUME,79</p><p>  JNZ LOP1 </p><p><

59、b>  MOV ROW,0</b></p><p>  MOV COLUME,79 ;完成矩形框的右豎行 </p><p>  LOP2: CALL CURSOR</p><p>  MOV AL,23H ;完成#的輸出</p><p>  MOV BL,

60、0DH</p><p><b>  PUSH CX</b></p><p><b>  MOV CX,1</b></p><p>  MOV AH,09H</p><p><b>  INT 10H</b></p><p><b>  POP

61、CX</b></p><p>  CALL DELAY1</p><p><b>  INC ROW</b></p><p>  CMP ROW,23</p><p><b>  JNZ LOP2</b></p><p>  MOV ROW,23 </p&g

62、t;<p>  MOV COLUME,79 ;完成矩形框的下橫行</p><p>  LOP4: CALL CURSOR</p><p>  MOV AL,23H</p><p>  MOV BL,0EH</p><p><b>  PUSH CX</b></p>

63、<p><b>  MOV CX,1</b></p><p>  MOV AH,09H</p><p><b>  INT 10H</b></p><p><b>  POP CX</b></p><p>  CALL DELAY1</p><p

64、>  DEC COLUME</p><p>  CMP COLUME,0</p><p>  JNZ LOP4 ;到此矩形框已完成</p><p>  MOV CL,1 ;消失矩形框左豎行</p><p>  LOP6: MA CL,0 </p>

65、<p>  MOV AL,' '</p><p>  MOV BL,0BH</p><p><b>  PUSH CX</b></p><p><b>  MOV CX,1</b></p><p>  MOV AH,09H</p><p><b

66、>  INT 10H</b></p><p><b>  POP CX</b></p><p>  CALL DELAY1</p><p><b>  INC CL</b></p><p><b>  CMP CL,23</b></p><

67、p><b>  JNZ LOP6</b></p><p>  MOV CL,0 ;消失矩形框下行</p><p>  LOP5: MA 23,CL</p><p>  MOV AL,' '</p><p>  MOV BL,0BH</p>

68、<p><b>  PUSH CX</b></p><p><b>  MOV CX,1</b></p><p>  MOV AH,09H</p><p><b>  INT 10H</b></p><p><b>  POP CX</b>&l

69、t;/p><p>  CALL DELAY1</p><p><b>  INC CL</b></p><p><b>  CMP CL,79</b></p><p>  JNZ LOP5 </p><p>  MOV CL,23 ;消失矩形框

70、右豎行</p><p>  LOP7: MA CL,79</p><p>  MOV AL,' '</p><p>  MOV BL,0BH</p><p><b>  PUSH CX</b></p><p><b>  MOV CX,1</b></

71、p><p>  MOV AH,09H</p><p><b>  INT 10H</b></p><p><b>  POP CX</b></p><p>  CALL DELAY1</p><p><b>  DEC CL</b></p>&

72、lt;p><b>  CMP CL,0</b></p><p>  JNZ LOP7 </p><p>  MOV CL,79 ;消失矩形框上行</p><p>  LOP8: MA 0,CL</p><p>  MOV AL,' '</p&g

73、t;<p>  MOV BL,0BH</p><p><b>  PUSH CX</b></p><p><b>  MOV CX,1</b></p><p>  MOV AH,09H</p><p><b>  INT 10H</b></p>&l

74、t;p><b>  POP CX</b></p><p>  CALL DELAY1</p><p><b>  DEC CL</b></p><p><b>  CMP CL,0</b></p><p><b>  JNZ LOP8 </b><

75、;/p><p>  LOP9: CALL CURSOR ;調(diào)用設(shè)置光標(biāo)位置</p><p>  MOV AL,23H ;把#的ASCII 碼傳遞給AL</p><p>  MOV BL,09H ;設(shè)置字符屬性</p><p>  PUSH CX

76、 ;入棧</p><p>  MOV CX,1 ;字符顯示1次</p><p>  MOV AH,09H</p><p><b>  INT 10H</b></p><p>  POP CX ;出棧</p><

77、p>  CALL DELAY1 ;調(diào)用延時</p><p>  DEC ROW ;行坐標(biāo)減1</p><p>  CMP ROW,0 ;若行坐標(biāo)大于0就跳轉(zhuǎn)到lop3否則執(zhí)行下個程序</p><p><b>  JNZ LOP9</b><

78、/p><p><b>  MOV ROW,0</b></p><p>  MOV COLUME,0 ;完成矩形框的上行 </p><p>  LOP10: CALL CURSOR</p><p>  MOV AL,23H</p><p>  MOV BL,0A

79、H</p><p><b>  PUSH CX</b></p><p><b>  MOV CX,1</b></p><p>  MOV AH,09H</p><p><b>  INT 10H</b></p><p><b>  POP CX

80、</b></p><p>  CALL DELAY1</p><p>  INC COLUME</p><p>  CMP COLUME,79</p><p>  JNZ LOP10 </p><p><b>  MOV ROW,0</b></p><p>

81、  MOV COLUME,79 ;完成矩形框的右豎行 </p><p>  LOP11: CALL CURSOR</p><p>  MOV AL,23H ;完成#的輸出</p><p>  MOV BL,0BH</p><p><b>  PUSH CX<

82、/b></p><p><b>  MOV CX,1</b></p><p>  MOV AH,09H</p><p><b>  INT 10H</b></p><p><b>  POP CX</b></p><p>  CALL DELAY1

83、</p><p><b>  INC ROW</b></p><p>  CMP ROW,23</p><p><b>  JNZ LOP11</b></p><p>  MOV ROW,23 </p><p>  MOV COLUME,79 ;完成

84、矩形框的下橫行</p><p>  LOP12: CALL CURSOR</p><p>  MOV AL,23H</p><p>  MOV BL,0FH</p><p><b>  PUSH CX</b></p><p><b>  MOV CX,1</b></

85、p><p>  MOV AH,09H</p><p><b>  INT 10H</b></p><p><b>  POP CX</b></p><p>  CALL DELAY1</p><p>  DEC COLUME</p><p>  CMP C

86、OLUME,0</p><p>  JNZ LOP12 ;到此矩形框已完成 </p><p>  MOV CL,1 ;消失矩形框左豎行</p><p>  LOP13: MA CL,0 </p><p>  MOV AL,' '</p>

87、<p>  MOV BL,0BH</p><p><b>  PUSH CX</b></p><p><b>  MOV CX,1</b></p><p>  MOV AH,09H</p><p><b>  INT 10H</b></p><p

88、><b>  POP CX</b></p><p>  CALL DELAY1</p><p><b>  INC CL</b></p><p><b>  CMP CL,23</b></p><p>  JNZ LOP13</p><p>  

89、MOV CL,0 ;消失矩形框下行</p><p>  LOP14: MA 23,CL</p><p>  MOV AL,' '</p><p>  MOV BL,0BH</p><p><b>  PUSH CX</b></p><p&g

90、t;<b>  MOV CX,1</b></p><p>  MOV AH,09H</p><p><b>  INT 10H</b></p><p><b>  POP CX</b></p><p>  CALL DELAY1</p><p><

91、b>  INC CL</b></p><p><b>  CMP CL,79</b></p><p>  JNZ LOP14 </p><p>  MOV CL,23 ;消失矩形框右豎行</p><p>  LOP15: MA CL,79</p>&

92、lt;p>  MOV AL,' '</p><p>  MOV BL,0BH</p><p><b>  PUSH CX</b></p><p><b>  MOV CX,1</b></p><p>  MOV AH,09H</p><p><b&

93、gt;  INT 10H</b></p><p><b>  POP CX</b></p><p>  CALL DELAY1</p><p><b>  DEC CL</b></p><p><b>  CMP CL,0</b></p><p&

94、gt;  JNZ LOP15 </p><p>  MOV CL,79 ;消失矩形框上行</p><p>  LOP16: MA 0,CL</p><p>  MOV AL,' '</p><p>  MOV BL,0BH</p><p><b&g

95、t;  PUSH CX</b></p><p><b>  MOV CX,1</b></p><p>  MOV AH,09H</p><p><b>  INT 10H</b></p><p><b>  POP CX</b></p><p&g

96、t;  CALL DELAY1</p><p><b>  DEC CL</b></p><p><b>  CMP CL,0</b></p><p>  JNZ LOP16 </p><p>  MA 0,0 ;消失(0,0)這一點</p>

97、<p>  MOV AL,' '</p><p>  MOV BL,0BH</p><p><b>  PUSH CX</b></p><p><b>  MOV CX,1</b></p><p>  MOV AH,09H</p><p><

98、;b>  INT 10H</b></p><p><b>  POP CX </b></p><p>  MA 12,30 ;顯示輸入ESC提示 輸入ESC退出</p><p>  WAT: LEA DX,BUF ;獲取偏移地址</p>

99、;<p>  MOV AH,9 ;用DOS功能9號功能顯示字符串</p><p><b>  INT 21H</b></p><p>  MOV AH,1 ;鍵盤輸入單個字符</p><p><b>  INT 21H</b>&l

100、t;/p><p>  CMP AL,1BH ;與ESC比較</p><p>  JZ EXIT ;如過輸入為ESC則跳轉(zhuǎn)</p><p>  CALL CLEAR</p><p><b>  MA 12,30</b></p><p

101、>  JMP LOP3 </p><p>  EXIT: MOV AX,4C00H ;返回dos系統(tǒng)</p><p>  INT 21H </p><p>  MAIN ENDP</p><p>  CLEAR PROC NEAR;清屏 </p><p>  MOV AH,

102、06H </p><p><b>  MOV AL,0</b></p><p>  MOV CH,0 </p><p><b>  MOV CL,0</b></p><p><b>  MOV DH,24</b></p><p><b> 

103、 MOV DL,79</b></p><p>  MOV BH,07H</p><p><b>  INT 10H</b></p><p><b>  RET</b></p><p>  CLEAR ENDP</p><p>  CURSOR PROC NEAR

104、 ;光標(biāo)的設(shè)置 </p><p>  MOV AH,02H</p><p><b>  MOV BH,0 </b></p><p>  MOV DH,ROW ;設(shè)置行</p><p>  MOV DL,COLUME ;設(shè)置列<

105、;/p><p><b>  INT 10H</b></p><p><b>  RET </b></p><p>  CURSOR ENDP </p><p>  DELAY1 PROC NEAR</p><p>  PUSH CX</p>

106、<p>  PUSH DX</p><p>  MOV DX,100</p><p>  D3: MOV CX,65530</p><p>  D4: LOOP D4</p><p>  DEC DX</p><p>  JNZ

107、D3</p><p>  POP DX</p><p>  POP CX</p><p><b>  RET</b></p><p>  DELAY1 ENDP </p><p>  CODESEG ENDS</

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論