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

下載本文檔

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

文檔簡(jiǎn)介

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

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

3、指導(dǎo)教師 </p><p>  提交日期 2011年6月24日 </p><p><b>  課程設(shè)計(jì)任務(wù)書(shū)</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擴(kuò)展功能································

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

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

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

13、lt;/p><p>  2.1已經(jīng)實(shí)現(xiàn)的功能(修改的、新編寫(xiě)的)說(shuō)明····················9</p><p>  3. 對(duì)該“打字練習(xí)程序”的進(jìn)一步設(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è)計(jì)總結(jié)····································

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

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

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

24、;·····14</p><p>  6.1參考文獻(xiàn)··························&

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

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

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

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

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

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

31、p><b>  詳細(xì)設(shè)計(jì)說(shuō)明</b></p><p>  分析原“typetest.asm”程序結(jié)構(gòu)</p><p>  2.1.1.首先在typetest.asm中定義了四個(gè)宏調(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)用以及對(duì)各個(gè)子函數(shù)的調(diào)用。</p><p>  2.1.4 程序的主要流程

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

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

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

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

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

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

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

40、言程序設(shè)計(jì),清華大學(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 ? ;已輸入字母的個(gè)數(shù)</p><p&

62、gt;  numb dw ? ;輸入正確字母的個(gè)數(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)天的時(shí)間</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án)輸入命令字符,無(wú)回顯</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'查詢(xún)分?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、等級(jí)</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: ;難度增加時(shí)升級(jí)</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:;游戲開(kāi)始</p><p>  mov time,0</p><

108、;p>  mov ah, 2ch</p><p>  int 21h;取系統(tǒng)時(shí)間,返回一個(gè)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án)輸入字符</p><p>  mov dl, 0ffh</p><p><b>  int 21h</b></p><p>

115、;<b>  pop dx</b></p><p>  jz pass;zf=1表示沒(méi)有輸入字符,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)位置寫(xiě)空格</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)位置寫(xiě)字母&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ì)算分?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)下一個(gè)新字母的算法</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 ;將新字母寫(xiě)進(jìn)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; 等級(jí)達(dá)到最高級(jí)時(shí)顯示“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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論