2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計</b></p><p>  2010 ~ 2011學(xué)年第二學(xué)期</p><p>  設(shè)計題目 打字練習(xí)程序 </p><p>  院(系) 計算機科學(xué)與信息工程 </p><p>  專 業(yè)

2、 計算機科學(xué)與技術(shù) </p><p>  班 級 學(xué)號 </p><p>  學(xué)生姓名 </p><p>  設(shè)計時間 2011年 6 月 20 日——2011 年 6 月 24日 </p><p>  

3、指導(dǎo)教師 </p><p>  提交日期 2011年6月24日 </p><p><b>  課程設(shè)計任務(wù)書</b></p><p>  指導(dǎo)教師(簽名): 教研室主任(簽名): </p><p>  2

4、011年 6 月 20 日 2011年 6 月 20 日</p><p><b>  目錄</b></p><p>  2010 ~ 2011學(xué)年第二學(xué)期··············&#

5、183;··························1</p><p>  1.概述·····&#

6、183;····································

7、·················5</p><p>  1.1基本功能··············

8、83;···································5</p

9、><p>  1.2擴展功能································

10、3;·················6</p><p>  2.詳細(xì)設(shè)計說明··············

11、····································

12、3;7</p><p>  2.1分析原“typetest.asm”程序結(jié)構(gòu)····························8&

13、lt;/p><p>  2.1已經(jīng)實現(xiàn)的功能(修改的、新編寫的)說明····················9</p><p>  3. 對該“打字練習(xí)程序”的進一步設(shè)想··&

14、#183;···························10</p><p>  3.1 ····

15、····································

16、3;················11</p><p>  3.2···············

17、3;····································&#

18、183;·····12</p><p>  3.3··························&#

19、183;·······························12</p><p>  4. 課程

20、設(shè)計總結(jié)····································

21、··············13</p><p>  5. 軟件使用說明·················

22、·································13</p><p>

23、;  6.附錄(參考文獻,原代碼)··································

24、;·····14</p><p>  6.1參考文獻··························&

25、#183;·························14</p><p>  6.2 源代碼·····

26、83;····································&

27、#183;··········15</p><p><b>  概述</b></p><p>  本課程設(shè)計是《80X86匯編語言程序設(shè)計》課程的后繼教學(xué)環(huán)節(jié), 通過對一個較大型的、綜合性的應(yīng)用程序進行閱讀、修改、添加功能等工作, 使學(xué)生對匯編語言程序設(shè)計有更進一步的認(rèn)

28、識, 提高閱讀理解復(fù)雜程序的能力和程序設(shè)計能力基本功能</p><p><b>  1.1基本功能</b></p><p>  設(shè)置輸入界面, 用戶輸入密碼后才能進入主菜單</p><p>  修改主菜單, 在主菜單上顯示當(dāng)天日期。</p><p>  修改主菜單, 增加可供用戶選擇難度級別的選項。</p>

29、<p>  為用戶打分,正確輸入字母使用時間越少,得分越高。</p><p>  修改程序, 在屏幕右上角顯示用戶得分、已輸入字母數(shù)、正確數(shù)。</p><p>  將程序中的“置光標(biāo)位置”程序段落用宏調(diào)用完成, 添加“置光標(biāo)位置”宏定義。</p><p><b>  1.2拓展功能</b></p><p> 

30、 1. 設(shè)置限定時間,到達該時間,用戶尚未得到要求的分?jǐn)?shù)時,游戲停止。</p><p>  2. 到達限定時間,用戶得分達到預(yù)設(shè)的值時, 自動提高難度等級, 屏幕變色。</p><p>  3. 修改程序,底行的笑臉字母消失后,不再在該列下落字母(提示:設(shè)置數(shù)組記錄笑臉字母的存在與否)。笑臉字母全部消失后, 游戲停止, 顯示告別畫面,顯示用戶成績。其他任務(wù):</p><

31、p><b>  詳細(xì)設(shè)計說明</b></p><p>  分析原“typetest.asm”程序結(jié)構(gòu)</p><p>  2.1.1.首先在typetest.asm中定義了四個宏調(diào)用的程序</p><p><b> ?。?)方框宏定義</b></p><p><b> ?。?)清屏宏

32、定義</b></p><p> ?。?)菜單顯示宏定義</p><p>  (4)設(shè)置光標(biāo)位置宏定義</p><p>  2.1.2 data數(shù)據(jù)段的定義:包括的所有的顯示字幕的定義。</p><p>  2.1.3 各宏定義函數(shù)的調(diào)用以及對各個子函數(shù)的調(diào)用。</p><p>  2.1.4 程序的主要流程

33、圖</p><p><b>  返回</b></p><p><b>  不正確</b></p><p><b>  密碼正確</b></p><p><b>  確定后進入</b></p><p>  已經(jīng)實現(xiàn)的功能(修改的、新編

34、寫的)說明</p><p>  2.2.1本程序已實現(xiàn)了基本的功能:</p><p>  設(shè)置輸入界面, 用戶輸入密碼后才能進入主菜單;</p><p>  修改主菜單, 在主菜單上顯示當(dāng)天日期;</p><p>  修改主菜單, 增加可供用戶選擇難度級別的選項;</p><p>  為用戶打分,正確輸入字母使用時間越

35、少,得分越高;</p><p>  修改程序, 在屏幕右上角顯示用戶得分、已輸入字母數(shù)、正確數(shù);</p><p>  將程序中的“置光標(biāo)位置”程序段落用宏調(diào)用完成, 添加“置光標(biāo)位置”宏定義;</p><p>  2.2.2本程序的擴展功能:</p><p>  修改了主界面的背景顏色以及字體的顏色,對一些主要的提示信息進行了一些優(yōu)化。<

36、;/p><p> ?。?) 增加了一鍵顯示用戶得分記錄的功能,只要用戶在主界面上輸入“C”,就可以顯示出來用戶的得分記錄</p><p>  對“打字練習(xí)程序”的進一步設(shè)想</p><p>  可以讓每次出現(xiàn)的字母都變得有邏輯性,就像打漢字的時候的那種邏輯性,還可以增加英語之類的打字練習(xí)。</p><p>  可以改變每一個字母在掉落的時候的顏色

37、。讓每一個字母的不同時刻的顏色都由電腦隨機產(chǎn)生。</p><p>  在打字練習(xí)的過程中還可以有一些適當(dāng)?shù)穆曇魜砼浜现毩?xí)的進行,這樣的話效果和用戶的體驗都會有更進一步的提高的。</p><p><b>  課程設(shè)計總結(jié)</b></p><p>  通過這次課程設(shè)計讓我跟具體的了解了匯編語言的用途以及他的特點,這樣有利于在今后的實踐中更好的去應(yīng)

38、用匯編語言解決問題,同時通過這次的課程設(shè)計也體現(xiàn)出了我的在匯編方面的一些基礎(chǔ)知識的不足。由于對匯編語言的一些基本知識的掌握不足,程序中還存在或多或少的缺陷和不足,有一些的基本功能在邏輯上還存在一些的小問題,但是不會影響基本的使用。</p><p><b>  軟件使用說明</b></p><p>  由于系統(tǒng)版本不同的緣故,在程序匯編鏈接的時候會停滯一部,但只要在敲一

39、下回車在進入一次就好了。很多時候在進入時輸入密碼后需要按回車才能跳轉(zhuǎn)到主界面。</p><p>  附錄(參考文獻,原代碼)</p><p><b>  參考文獻</b></p><p>  [1] 楊文顯,宓雙,胡建人.新編匯編語言程序設(shè)計,清華大學(xué)出版社,2010</p><p>  [2] 朱玉龍,任文覽等.匯編語

40、言程序設(shè)計,清華大學(xué)出版社,2003</p><p>  [3] [美]Kip R.Irvine. 電子工業(yè)出版社,2004</p><p><b>  原代碼</b></p><p>  ; Assembly program for test your type skills </p><p>  ; Write

41、d by in 06/24/2003</p><p>  ; Modified by Mi shuang in 06/06/2005</p><p>  ; ------------------------------------------------</p><p>  include ylib.h</p><p> 

42、 Init_boarder macro row,col,char,dhdl,count;</p><p><b>  Localll</b></p><p>  mov cx, count </p><p>  mov dh, row</p><p>  mov dl, col</p><p>

43、;  ll: movah, 02h</p><p>  mov bh, 00h</p><p><b>  int 10h</b></p><p><b>  push cx</b></p><p>  mov ah, 0ah</p><p>  mov al, char

44、</p><p>  mov bh, 00h</p><p>  mov cx, 01h</p><p><b>  int 10h</b></p><p><b>  pop cx</b></p><p><b>  inc dhdl</b></

45、p><p><b>  loop ll </b></p><p><b>  endm</b></p><p>  ; ---------------------------------------------------</p><p>  clear_screen macro top, left,

46、bottom, right,col;清屏宏定義</p><p>  mov ah, 06h </p><p>  mov al, 00h</p><p>  mov bh, col</p><p>  mov ch, top</p><p>  mov cl, left</p&g

47、t;<p>  mov dh, bottom</p><p>  mov dl, right</p><p><b>  int 10h</b></p><p>  mov ah, 02h</p><p>  mov bh, 00h</p><p>  mov dh, 0

48、0h</p><p>  mov dl, 00h</p><p><b>  int 10h</b></p><p><b>  endm</b></p><p>  ;----------------------------------------------------------</

49、p><p>  SETCUSOR MACRO PAGE,ROW,COLUMN ;設(shè)置光標(biāo)位置</p><p>  MOV AH,02H</p><p>  MOV BH,PAGE</p><p>  MOV DL,COLUMN</p><p>  MOV DH,ROW</p><p

50、><b>  INT 10H</b></p><p><b>  ENDM</b></p><p>  ; ----------------------------------------------------</p><p>  menumacrorow, col, text; 菜單顯示宏定義 <

51、;/p><p>  mov ah, 02h</p><p>  mov bh, 024h</p><p>  mov dh, row</p><p>  mov dl, col</p><p><b>  int 10h</b></p><p>  mov ah,

52、09h</p><p>  lea dx, text</p><p><b>  int 21h</b></p><p><b>  endm</b></p><p>  ; ======================================================</p

53、><p>  Data segment</p><p>  kaishi db 0ah,0dh, " welcome to play the game !$" </p><p><b>  year dw ?</b></p><p>  month db ?<

54、;/p><p><b>  day db ?</b></p><p>  date db 0ah,0dh, "Date:$"</p><p>  mes0 db 0ah,0dh, "(1)Press Enter key to continue.......$"</p><p&g

55、t;  mes1 db 0ah,0dh, "(2)When a letter is dropping,please hit it!$"</p><p>  mes2 db 0ah,0dh, "(3)Press space key to pause!$"</p><p>  mes3 db 0ah,0dh, "(4)Pres

56、s ESC key to return main interface!$"</p><p>  mes4 db 0ah,0dh, "(5)Press letter 'E' to exit!$"</p><p>  mes5 DB 'please enter your password :$'</p>&

57、lt;p>  mes6 db 0ah,0dh,"1: < fast >$"</p><p>  mes7 db 0ah,0dh,"2: < veryfast>$"</p><p>  mes8 db 0ah,0dh,"3: < slow >$"</p&g

58、t;<p>  mess8db 0ah,0dh,"4: < veryslow>$"</p><p>  mes9 db 'please choose the speed you want:$'</p><p>  mes10 db "The game is over!$"</p>

59、<p>  mes15 db "Do you want to continue ? Yes(1)/No(0):$"</p><p>  mes11 db "your time:$"</p><p>  mes12 db "right keys:$"</p><p>  mes13

60、 db "Your score:$"</p><p>  mes14 db "you have input:$"</p><p>  mes20 db "hi guy good job!$"</p><p>  mes21 db 0ah,0dh,"(6)press 'c&#

61、39;to check your records!$"</p><p>  mes22 db "these records:$"</p><p>  col db 00h,24h,0fdh,0dh ;顏色</p><p>  numb1 dw ? ;已輸入字母的個數(shù)</p><p&

62、gt;  numb dw ? ;輸入正確字母的個數(shù)</p><p>  score dw ? ;每輪游戲的分?jǐn)?shù)</p><p>  TIME DW ?</p><p>  sum dw ? ;所有字母下落的行數(shù)和</p><p>  sum1 dw ? </p>

63、<p>  game_time dw ? ;記錄游戲的次數(shù)</p><p>  scores dw 4 dup(?) ;記錄游戲分?jǐn)?shù)</p><p>  password db "111111"</p><p>  password1 db 6 dup(?)</p><p&

64、gt;  GRADE DW ?</p><p>  Speed dw1000H,300h,5000h,8000h</p><p>  yanchi dw 0f00h,3fffh,1fffh</p><p>  Letters db "jwmilzoeucgpravskntxhdyqfb"</p>&

65、lt;p>  db "iytpkwnxlsvxrmofzhgaebudjq"</p><p>  db "nwimzoexrphysfqtvdcgljukda"</p><p>  Present_position db 1</p><p>  db 0</p><p><

66、;b>  Data ends</b></p><p>  ; =========================================================</p><p>  codesegment</p><p>  assumecs: code, ds: data</p><p><b&g

67、t;  start:</b></p><p>  mov ax, data</p><p><b>  mov ds,ax</b></p><p><b>  mov es,ax</b></p><p><b>  new:</b></p><p

68、>  clear_screen 0,0,24,79,0f4h</p><p>  SETcusor 0,10,30</p><p>  LEA DX,MES5</p><p>  MOV AH,09H</p><p><b>  INT 21H</b></p><p>  ;--------

69、--------------------------------------------------------------------------------------</p><p>  SETCUSOR 0,11,61</p><p>  lea bx,password1</p><p><b>  mov cx,6</b></p

70、><p><b>  input:</b></p><p>  mov ah,07h</p><p><b>  int 21h</b></p><p>  mov [bx],al</p><p><b>  inc bx</b></p>&l

71、t;p>  mov ah,02h</p><p>  mov dl,'*'</p><p><b>  int 21h</b></p><p>  ;---------------------------------------------------------------------------------------

72、-</p><p>  loop input</p><p><b>  contiun:</b></p><p>  mov ah,07h</p><p><b>  int 21h</b></p><p>  cmp al,0dh</p><p>

73、  jne contiun</p><p><b>  mov cx,6</b></p><p>  lea si,password</p><p>  lea di,password1</p><p><b>  check:</b></p><p>  mov al,[s

74、i]</p><p>  cmp al,[di]</p><p><b>  jne new</b></p><p><b>  inc si</b></p><p><b>  inc di</b></p><p>  loop check

75、;密碼的輸入及判斷是否正確</p><p>  ;--------------------------------------------------------------------------------------</p><p><b>  start1:</b></p><p>  clear_screen 0d,0d,24d,7

76、9d,07h</p><p>  mov grade,0</p><p>  mov numb,0</p><p>  mov numb1,0</p><p>  mov sum,0</p><p>  mov score,0</p><p>  mov cx,1000h

77、;隱藏光標(biāo)</p><p>  mov ah,01h</p><p>  int 10h</p><p>  clear_screen 0d,0d,24d,79d,1eh ;清屏</p><p>  Init_boarder 0d, 0d, '*', dl, 80d</p><p

78、>  Init_boarder 24d,0d, '*', dl, 80d</p><p>  Init_boarder 0d, 0d, '*', dh, 25d</p><p>  Init_boarder 0d, 79d, '*', dh, 25d ;初始化邊框</p><p>  menu 3d,2

79、0d,kaishi; ;顯示菜單</p><p>  menu 7d,15d, date</p><p>  push dx ;顯示當(dāng)天的時間</p><p>  mov ah,2ah</p><p><b>  int 21h</b></p><p>  

80、mov year,cx</p><p>  mov month,dh</p><p>  mov day,dl</p><p>  mov dx,-1</p><p>  mov ax,year</p><p>  call writedec</p><p><b>  m

81、ov ah,0</b></p><p>  mov al,month</p><p>  call writedec</p><p>  mov dx,-1</p><p>  mov al,day</p><p>  call writedec</p><p><

82、b>  pop dx</b></p><p>  menu 09d, 15d, mes0 </p><p>  menu 11d, 15d, mes1</p><p>  menu 13d, 15d, mes2</p><p>  menu 15d, 15d, mes3</p><p>  men

83、u 17d, 15d, mes4</p><p>  menu 29d, 15d, mes21</p><p>  ;-----------------------------------------------------------------------------------------</p><p>  mov ah,02h ;設(shè)置光標(biāo)位置

84、</p><p>  mov bh, 00h</p><p>  mov dh, 22d</p><p>  mov dl, 33d</p><p><b>  int 10h</b></p><p><b>  keyin:</b></p><p&g

85、t;  mov ah, 07h ;從鍵盤輸入命令字符,無回顯</p><p><b>  int 21h</b></p><p>  cmp al, 0dh</p><p>  je begin</p><p>  cmp al, 'E'</p>&l

86、t;p><b>  je exit</b></p><p>  cmp al,'c' ;輸入‘c'查詢分?jǐn)?shù)記錄</p><p>  je search</p><p><b>  jmp keyin</b></p><p><b>  s

87、earch :</b></p><p><b>  push dx</b></p><p>  clear_screen 0,0,24,79,1eh</p><p>  menu 5d,20d,mes22</p><p><b>  mov cx,4</b></p><

88、;p>  lea si,scores</p><p><b>  next33:</b></p><p>  mov ah,02h</p><p>  mov dl," "</p><p><b>  int 21h</b></p><p><

89、b>  mov dx,-1</b></p><p>  mov ax,[si]</p><p>  call writedec</p><p><b>  add si,2</b></p><p>  loop next33</p><p><b>  pop dx&l

90、t;/b></p><p><b>  exit:</b></p><p>  mov ax, 4c00h</p><p><b>  int 21h</b></p><p>  ;--------------------------------------------------------

91、------------------------------</p><p><b>  begin:</b></p><p>  clear_screen 0,0,24,79,0f6h</p><p>  menu 6d,28d,mes6</p><p>  menu 9d,28d,mes7</p>&l

92、t;p>  menu 13d,28d,mes8</p><p>  menu 15d,28d,mess8</p><p>  SETcusor 0,17,28</p><p>  lea dx,mes9</p><p>  call readdec</p><p>  cmp ax,2 ;選擇游戲的

93、等級</p><p><b>  je done</b></p><p><b>  cmp ax,1</b></p><p><b>  je done</b></p><p><b>  cmp ax,3</b></p><p>

94、;<b>  je done</b></p><p><b>  cmp ax,4</b></p><p>  ;jne begin</p><p><b>  jmp done</b></p><p>  higher: ;難度增加時升級</p>&

95、lt;p><b>  push bx</b></p><p>  MOV BX,game_time</p><p><b>  DEC BX</b></p><p><b>  SHL BX,1</b></p><p>  mov si,score</p>

96、<p>  mov scores[bx],si </p><p>  mov numb,0</p><p>  mov numb1,0</p><p>  mov score,0</p><p><b>  mov sum,0</b></p><p>  mov sum1,0</p

97、><p>  mov bx,grade</p><p>  clear_screen 00d, 00d, 24d, 79d,col[bx]</p><p><b>  pop bx</b></p><p><b>  inc grade</b></p><p>  cmp gra

98、de,3</p><p><b>  ja ok1</b></p><p><b>  jmp ten</b></p><p><b>  ok1:</b></p><p><b>  jmp ok2</b></p><p>  ;

99、------------------------------------------------------------------------------------------</p><p><b>  done:</b></p><p>  MOV GRADE,AX</p><p>  clear_screen 00d, 00d, 24

100、d, 79d,1eh ;清屏</p><p><b>  ten:</b></p><p>  Init_boarder 00d, 00d, '*', dl, 80d</p><p>  Init_boarder 24d, 00d, '*', dl, 80d</p><p>  In

101、it_boarder 00d, 00d, '*', dh, 25d</p><p>  Init_boarder 00d, 79d, '*', dh, 25d ;初始化邊框</p><p>  clear_screen 02d, 02d, 23d, 78d,1eh; 清屏(邊框還存在)</p><p>  Init_board

102、er 23d, 01d, 01h, dl, 78d; 在倒數(shù)第二行顯示一行笑臉</p><p>  SETCUSOR 0,01,8 </p><p>  lea dx,mes14</p><p>  mov ax,numb1</p><p>  call writedec</p><p>  SETC

103、USOR 0,01,35</p><p>  lea dx,mes12</p><p>  mov ax,numb</p><p>  call writedec</p><p>  SETCUSOR 0,01,55</p><p>  lea dx,mes13</p><p>  

104、mov ax,score</p><p>  call writedec ;顯示已輸擊字母數(shù),正確的字母數(shù)和分?jǐn)?shù)</p><p>  ;----------------------------------------------------------------------------------------</p><p>  mov ah, 02

105、h</p><p>  mov bh, 00h</p><p>  mov dh, 02h</p><p>  mov dl, 02h</p><p>  int 10h ;將光標(biāo)設(shè)置在第一行第一列</p><p>  mov cx, 78 </p><p>  lea si,

106、 letters</p><p>  nextletter:mov ah, 02h; 顯示字母</p><p>  mov dl,[si]</p><p><b>  int 21h</b></p><p><b>  inc si</b></p><p>  lo

107、op nextletter</p><p>  ;-----------------------------------------------------------------------------------------</p><p>  start_game:;游戲開始</p><p>  mov time,0</p><

108、;p>  mov ah, 2ch</p><p>  int 21h;取系統(tǒng)時間,返回一個0—99的數(shù),在dl里</p><p><b>  inc dl</b></p><p><b>  cmp dl,78</b></p><p><b>  jna sg1&l

109、t;/b></p><p><b>  sub dl,78</b></p><p><b>  sg1:</b></p><p>  mov present_position, dl</p><p>  lea di, letters</p><p>  add di,

110、 word ptr present_position ;di指向即將掉落的字母</p><p><b>  dec di</b></p><p>  mov dl, present_position</p><p>  mov ah, 02h</p><p>  mov bh, 00h</p><

111、p>  mov dh, 02h</p><p>  int 10h ;將光標(biāo)設(shè)置在第一行和當(dāng)前列的位置</p><p>  mov cx, 20d;總共有20行是空的</p><p>  ;----------------------------------------------------------------------------

112、-------------</p><p><b>  nextrow: </b></p><p><b>  push cx</b></p><p>  MOV BX,GRADE</p><p><b>  DEC BX</b></p><p><

113、;b>  SHL BX,1</b></p><p>  mov cx,speed[bx]</p><p>  wait_for_key:</p><p><b>  push cx</b></p><p>  mov cx,yanchi[bx]; 延遲 </p><p> 

114、 delay:loop delay</p><p><b>  push dx</b></p><p>  mov ah, 06h ; 從鍵盤輸入字符</p><p>  mov dl, 0ffh</p><p><b>  int 21h</b></p><p>

115、;<b>  pop dx</b></p><p>  jz pass;zf=1表示沒有輸入字符,zf=0表示有字符輸入</p><p>  cmp al, 1bh ; 如果鍵入ESC,則返回主菜單</p><p>  je to_start</p><p>  cmp al, " &quo

116、t;; 如果鍵入SPACE,則游戲暫停</p><p><b>  jne pass0</b></p><p>  jmp pause</p><p><b>  ok2:</b></p><p><b>  jmp ok3</b></p><p

117、><b>  midstep:</b></p><p>  jmp nextrow</p><p>  ;------------------------------------------------------------------------------------------</p><p><b>  pause:

118、 </b></p><p>  push dx; 暫停處理</p><p>  mov ah, 06h</p><p>  mov dl, 0ffh</p><p><b>  int 21h</b></p><p><b>  pop dx</b><

119、;/p><p>  cmp al, " "</p><p>  jne pause</p><p><b>  je pass</b></p><p><b>  jmp pass0</b></p><p><b>  to_start

120、:</b></p><p>  jmp start1</p><p>  ;----------------------------------------------------------------------------------------</p><p><b>  pass0: </b></p><

121、;p><b>  inc numb1</b></p><p><b>  push dx</b></p><p><b>  push ax</b></p><p>  SETCUSOR 0,01,8</p><p>  lea dx,mes14</p>&

122、lt;p>  mov ax,numb1</p><p>  call writedec</p><p><b>  pop ax</b></p><p><b>  pop dx</b></p><p>  SETCUSOR 0,dh,dl</p><p>  cmp

123、al,[di] ; 輸入字母正確!則字母消失</p><p>  je disappear</p><p><b>  jmp pass</b></p><p><b>  high1:</b></p><p>  jmp higher</p><p><

124、b>  kk3:</b></p><p>  jmp to_start</p><p>  ;--------------------------------------------------------------------------------------</p><p><b>  pass:</b></p&

125、gt;<p><b>  pop cx</b></p><p>  LOOP wait_for_key</p><p><b>  down:</b></p><p><b>  inc time </b></p><p><b>  inc su

126、m</b></p><p>  mov ah, 0ah ; 在當(dāng)前光標(biāo)位置寫空格</p><p>  mov al, " "</p><p>  mov bh, 00h</p><p>  mov cx, 01h</p><p>  int 10h</p>&

127、lt;p><b>  inc dh</b></p><p>  mov ah, 02h; 改變光標(biāo)位置</p><p>  mov bh, 00h</p><p><b>  int 10h</b></p><p>  mov ah, 0ah; 在當(dāng)前光標(biāo)位置寫字母&l

128、t;/p><p>  mov al, [di]</p><p>  mov bh, 00h</p><p>  mov cx, 01h</p><p>  int 10h</p><p><b>  pop cx</b></p><p>  loop midstep

129、;下一行</p><p>  ;-------------------------------------------------------------------------------------------</p><p>  letter_over:</p><p>  mov ah,0ah</p><p>  mov al

130、, " "</p><p>  mov bh, 00h</p><p>  mov cx, 01h</p><p>  int 10h</p><p>  inc dh ;將光標(biāo)設(shè)置在最后一行</p><p>  mov ah, 02h</p><p> 

131、 mov bh, 00h</p><p>  int 10h</p><p>  mov ah, 0ah ;最后行的笑臉消失</p><p>  mov al, " "</p><p>  mov bh, 00h</p><p>  mov cx, 01h</p>

132、<p><b>  int 10h</b></p><p>  jmp next_letter</p><p>  jmp disappear</p><p>  jmp disappear</p><p><b>  ok3:</b></p><p><b

133、>  jmp ok4</b></p><p><b>  kk2:</b></p><p><b>  jmp kk3</b></p><p>  disappear: ; 擊中字母后輸出空</p><p><b>  pop cx</b></

134、p><p><b>  pop cx</b></p><p>  mov ah,0ah</p><p>  mov al," "</p><p>  mov bh,00h</p><p>  mov cx,01h</p><p><b>

135、;  int 10h</b></p><p><b>  inc numb</b></p><p><b>  push bx</b></p><p><b>  push dx</b></p><p><b>  push ax</b>&l

136、t;/p><p><b>  push di</b></p><p>  SETCUSOR 0,01,35</p><p>  lea dx,mes12</p><p>  mov ax,numb</p><p>  call writedec ;重新顯示正確字母數(shù)</p>&

137、lt;p>  SETCUSOR 0,01,55</p><p>  mov si,numb</p><p>  mov bx,time</p><p><b>  neg bx</b></p><p><b>  add bx,21</b></p><p>  add

138、sum1,bx</p><p><b>  pop bx</b></p><p>  add si,sum1</p><p>  mov score,si</p><p>  lea dx,mes13</p><p>  mov ax,score</p><p>  cal

139、l writedec;計算分?jǐn)?shù)并輸出</p><p><b>  pop di</b></p><p><b>  pop ax</b></p><p><b>  pop dx</b></p><p><b>  pop bx</b></

140、p><p>  jmp next_letter</p><p>  ok4:jmp ok</p><p><b>  kk11:</b></p><p>  jmp kk2;</p><p>  next_letter:mov ah, 02h;將光標(biāo)重新設(shè)回</p>&l

141、t;p>  mov bh, 00h</p><p>  mov dh, 02h</p><p>  mov dl, present_position</p><p><b>  int 10h</b></p><p><b>  jmp high4</b></p>&

142、lt;p>  high3:jmp high1</p><p><b>  high4:</b></p><p>  mov al, [di] ; 出現(xiàn)下一個新字母的算法</p><p>  add al, 7</p><p>  cmp al, 7ah</p><p>

143、  jna next_letter1</p><p>  sub al, 26</p><p>  next_letter1: </p><p>  mov ah, 0ah ;顯示al里的內(nèi)容</p><p>  mov bh, 00h</p><p>  mov cx, 01h</p>

144、<p>  int 10h</p><p>  mov [di], al ;將新字母寫進letters</p><p>  cmp sum,100</p><p><b>  jna done5</b></p><p>  inc game_time</p><p&g

145、t;  cmp score,80</p><p><b>  ja high3 </b></p><p><b>  jmp over</b></p><p><b>  kk1:</b></p><p><b>  jmp kk11</b></p&

146、gt;<p>  over: ;游戲結(jié)束</p><p><b>  push bx</b></p><p>  ;----------------------------------------------------------------------------</p><p>  MOV BX,game_t

147、ime</p><p><b>  DEC BX</b></p><p><b>  SHL BX,1</b></p><p>  mov si,score</p><p>  mov scores[bx],si </p><p><b>  pop bx</

148、b></p><p>  clear_screen 0,0,24,79,1eh</p><p>  SETCUSOR 0,10,2</p><p>  lea dx,mes10 ;是否繼續(xù)游戲</p><p>  mov ah,09h</p><p><b>  int 21h&

149、lt;/b></p><p>  SETCUSOR 0,11,2</p><p>  lea dx,mes15</p><p>  call readdec</p><p>  cmp ax,1 ;</p><p><b>  je kk1</b></p><p>

150、  jmp next11</p><p><b>  done5:</b></p><p>  jmp start_game</p><p><b>  ok:</b></p><p>  clear_screen 0,0,24,79,0deh; 等級達到最高級時顯示“GOOD JOB!”&

151、lt;/p><p>  SETCUSOR 0,10,35</p><p>  lea dx,mes20</p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  ;----------------------------------------

溫馨提示

  • 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

提交評論