匯編課程設(shè)計(jì)--函數(shù)調(diào)用_第1頁(yè)
已閱讀1頁(yè),還剩12頁(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>  1.設(shè)計(jì)任務(wù)</b></p><p>  在本次課程設(shè)計(jì)中,我組報(bào)的是編寫打字游戲,該程序可以分辨輸入的自與系統(tǒng)給出的字的相同與否,并作出相應(yīng)的顏色處理。</p><p><b>  2.設(shè)計(jì)目的</b></p><p>  本次課程設(shè)計(jì)的目的主要是將課堂上所學(xué)的知識(shí)學(xué)以致用,并同過(guò)程序的制作

2、過(guò)程學(xué)習(xí)課外的新知識(shí),加強(qiáng)加深對(duì)知識(shí)的理解與掌握,并通過(guò)小組團(tuán)結(jié)合作,發(fā)揮每個(gè)人的力量使任務(wù)更加生動(dòng)有趣。</p><p><b>  3.設(shè)計(jì)思想</b></p><p>  程序首先定義一個(gè)hello的函數(shù)調(diào)用int 21h mov ah ,09來(lái)顯示字符串,ds:dx定義字符串位置 來(lái)使用一個(gè)80×25的界面使整個(gè)程序更加美觀</p>

3、<p>  游戲主程序調(diào)用BIOS int 10 的9號(hào)功能實(shí)現(xiàn)對(duì)目標(biāo)文本的顏色和定位,。游戲主程序可以用int 16 mov ah,00從鍵盤讀取輸入的字符在調(diào)用int 21 mov ah,01 讓鍵盤輸入顯示在屏幕中 al=輸入的字符,用cmp指令對(duì)輸入的文本和目標(biāo)文本進(jìn)行比較,再利用選擇語(yǔ)句將錯(cuò)誤的輸入字符顯示為紅色,將正確的輸入字符顯示為綠色。在整個(gè)字符串結(jié)束后直接退到dos環(huán)境</p><

4、p><b>  4.概要設(shè)計(jì)</b></p><p><b>  圖1 流程圖</b></p><p><b>  5.詳細(xì)設(shè)計(jì)</b></p><p>  程序首先定義一個(gè)hello的函數(shù)調(diào)用int 21h mov ah ,09來(lái)顯示字符串,ds:dx定義字符串位置 來(lái)使用一個(gè)80

5、5;25的界面使整個(gè)程序更加美觀。</p><p>  程序定義了choosepage函數(shù)來(lái)實(shí)現(xiàn)頁(yè)面的轉(zhuǎn)換</p><p>  choosepage proc near</p><p><b>  mov al,pg</b></p><p>  mov ah,05h</p><p><b&

6、gt;  int 10h</b></p><p><b>  ret</b></p><p>  choosepage endp </p><p>  它使可以產(chǎn)生新的頁(yè)面,讓程序的分布更加人性化。</p><p>  游戲主程序調(diào)用BIOS int 10 的9號(hào)功能實(shí)現(xiàn)對(duì)目標(biāo)文本的顏色和定位,。游戲主程序

7、可以用int 16 mov ah,00從鍵盤讀取輸入的字符在調(diào)用int 21 mov ah,01 讓鍵盤輸入顯示在屏幕中 al=輸入的字符,將鍵盤輸入的字符與目標(biāo)文本進(jìn)行比較用cmp指令對(duì)輸入的文本和目標(biāo)文本進(jìn)行比較,再利用選擇語(yǔ)句將錯(cuò)誤的輸入字符顯示為紅色,將正確的輸入字符顯示為綠色。在整個(gè)字符串結(jié)束后直接退到dos環(huán)境</p><p><b>  6.程序代碼</b></p&

8、gt;<p>  data segment</p><p>  string db '-----%%%****@@--welcome to my game!!----%%%%***@@@--- ','$'</p><p>  author db '---- Shu jun Wu liang wang ying ying---'

9、;,'$'</p><p>  enter1 db ' 1: testword ! '</p><p>  count equ $-enter1</p><p>  y db 'abcdefdfdfslhkladlfjdljflddljfwefoooddddAAAA','$'</p>

10、<p>  count1 equ $-y</p><p>  pg db ?</p><p>  color db ?</p><p><b>  data ends</b></p><p>  code segment</p><p>  assume cs:code ,ds:d

11、ata</p><p>  start: mov ax,data</p><p><b>  mov ds,ax</b></p><p>  call hello ;jie mian</p><p>  mov ah,4ch</p><p><b>  int 21h</

12、b></p><p>  ;-----------------proc of window---------------</p><p>  hello proc near</p><p>  mov ah ,00h ;choose mode 80*25</p><p>  mov al,03h</p><p

13、><b>  int 10h</b></p><p><b>  mov pg,1</b></p><p>  call choosepage</p><p><b>  mov dh,7</b></p><p><b>  mov dl,6</b

14、></p><p>  call locate</p><p>  lea dx,string</p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  mov dh,11 ;都在置光標(biāo)前將行為11</p><

15、p>  mov dl,25 </p><p>  call locate</p><p>  mov si,-1</p><p>  ;------show word--------</p><p>  inin: inc si</p><p>  cmp si,count</p>&

16、lt;p><b>  jz out1</b></p><p>  mov ah,09h</p><p><b>  mov bh,1</b></p><p>  mov al,enter1[si]</p><p>  mov bl,03h ; color of letter

17、</p><p><b>  int 10h</b></p><p><b>  inc dl</b></p><p>  call locate</p><p><b>  jmp inin</b></p><p>  out1: mov dh,

18、14</p><p><b>  mov dl,9</b></p><p>  call locate</p><p>  lea dx,author</p><p>  mov ah,09h</p><p><b>  int 21h</b></p>&

19、lt;p>  mov ah,00h</p><p><b>  int 16h</b></p><p>  cmp al,27</p><p><b>  jz exit</b></p><p>  cmp al,0dh</p><p><b>  jn

20、z out1</b></p><p>  call game </p><p>  exit: mov pg,0</p><p>  call choosepage</p><p>  mov ah,4ch</p><p><b>  int 21h</b></p>

21、;<p><b>  ret</b></p><p>  hello endp</p><p>  ;-------------locate cursor-- ----</p><p>  locate proc near</p><p>  mov ah,02h</p><p>

22、;<b>  mov bh,1</b></p><p><b>  int 10h</b></p><p><b>  ret</b></p><p>  locate endp</p><p>  ;----------------choose a new page-----

23、--</p><p>  choosepage proc near</p><p><b>  mov al,pg</b></p><p>  mov ah,05h</p><p><b>  int 10h</b></p><p><b>  ret</b

24、></p><p>  choosepage endp</p><p>  ;-------------game proc -----------</p><p>  game proc near</p><p><b>  mov pg,2</b></p><p>  call choos

25、epage</p><p><b>  lea dx,y</b></p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  mov dl,0dh</p><p>  mov ah,02h</p><

26、;p><b>  int 21h</b></p><p>  mov dl,0ah</p><p>  mov ah,02h</p><p><b>  int 21h</b></p><p><b>  mov si,-1</b></p><p&g

27、t;  ingame: inc si</p><p>  cmp si,count1-1</p><p>  jge outgame</p><p>  mov ah,01h</p><p><b>  int 21h</b></p><p><b>  cmp al,27</b&

28、gt;</p><p>  jz outgame1</p><p>  cmp al,y[si]</p><p><b>  jnz wrong</b></p><p>  cmp al,' '</p><p>  jz blankcolor</p><p&g

29、t;  mov color,03 ;if right change color</p><p>  blankcolor1:</p><p><b>  mov bx,si</b></p><p><b>  mov dl,bl</b></p><p><b>  mov dh,1<

30、/b></p><p><b>  mov bh,2</b></p><p>  mov ah,02h</p><p><b>  int 10h</b></p><p>  ;-----換色 調(diào)用int 10 的9號(hào)功能 書上478頁(yè)-----</p><p> 

31、 mov ah,09h</p><p>  mov bl,color </p><p>  mov bh,2</p><p>  mov cx,1</p><p><b>  int 10h</b></p><p><b>  inc dl</b>&

32、lt;/p><p>  mov ah,02h</p><p>  int 10h </p><p>  jmp ingame</p><p>  blankcolor: mov color,33h</p><p>  jmp blankcolor1</p><p><b>  w

33、rong:</b></p><p>  cmp al,' '</p><p>  jz blankcolor2</p><p>  mov color,04;if wrong change color </p><p><b>  wrong1:</b></p><p>

34、;<b>  mov bx,si</b></p><p><b>  mov dl,bl</b></p><p><b>  mov dh,1</b></p><p><b>  mov bh,2</b></p><p>  mov ah,02h</

35、p><p><b>  int 10h</b></p><p>  mov ah,09h</p><p>  mov bl,color </p><p>  mov bh,2</p><p>  mov cx,1</p><p><b>  

36、int 10h</b></p><p><b>  inc dl</b></p><p>  mov ah,02h</p><p>  int 10h </p><p>  jmp ingame</p><p>  blankcolor2:</p><

37、p>  mov color,44</p><p>  jmp wrong1</p><p>  outgame: mov ah,00h</p><p><b>  int 16h</b></p><p><b>  outgame1:</b></p><p><

38、b>  mov pg,0</b></p><p>  call choosepage</p><p>  mov ah,4ch</p><p><b>  int 21h</b></p><p><b>  ret</b></p><p><b>

39、  game endp</b></p><p><b>  code ends</b></p><p><b>  end start</b></p><p><b>  7.程序調(diào)試</b></p><p>  在將程序初完成后進(jìn)行并沒(méi)有立刻進(jìn)行調(diào)試而是在wind

40、ows環(huán)境下用記事本打開(kāi)程序?qū)ζ溥M(jìn)行說(shuō)明注釋,由于使用了中文,所以回到dos環(huán)境時(shí)出現(xiàn)了亂碼但并沒(méi)有對(duì)程序的運(yùn)行造成影響。</p><p>  第一次調(diào)試時(shí),程序沒(méi)有分頁(yè),使得打字界面和歡迎界面在一個(gè)屏幕上同時(shí)出現(xiàn),讓用戶感覺(jué)非常不美觀。故在程序中加入了choosepage函數(shù),這樣把歡迎界面和主界面分在兩個(gè)頁(yè)面中顯示。</p><p>  程序?qū)σ话愕淖址斎肟梢詼?zhǔn)確地進(jìn)行分辨但對(duì)空格鍵

41、則不會(huì)作出任何處理。在程序中加入了對(duì)空格的分辨。用blankcolor對(duì)其進(jìn)行顏色處理。</p><p>  程序在目標(biāo)文本沒(méi)有打完時(shí),不會(huì)退出。在程序中加入了函數(shù),使程序可以在目標(biāo)文本沒(méi)有打完時(shí)用ESC鍵直接退出程序,進(jìn)入dos環(huán)境。</p><p><b>  8.課設(shè)小結(jié)</b></p><p>  本次課程設(shè)計(jì)讓我們充分了解了匯編在實(shí)際

42、軟件開(kāi)發(fā)中的作用和地位。在這次課程設(shè)計(jì)過(guò)程中我們把課堂上的知識(shí)充分運(yùn)用了還是不能完成實(shí)際軟件開(kāi)發(fā)。這說(shuō)明程序開(kāi)發(fā)是不能夠停留在書本上的,想要把程序作好,必須要不斷通過(guò)各種途徑掌握更多更好的知識(shí),并且最重要的是要將獲得的知識(shí)運(yùn)用到實(shí)際編程中,要學(xué)以致用。</p><p>  本次課程設(shè)計(jì)是自由分組、自由選題。我們可以充分根據(jù)我們的興趣和長(zhǎng)處,選擇題目,所以這次課程設(shè)計(jì)是非常順利的。這次讓我們體會(huì)到了團(tuán)隊(duì)通力合作的快

43、樂(lè)和強(qiáng)大力量。我們?nèi)齻€(gè)按各自分配的任務(wù),做好各個(gè)小塊后,再把它們合并起來(lái),這樣程序才得以完成。一個(gè)星期的時(shí)間并不是太長(zhǎng)。但團(tuán)隊(duì)的合作使任務(wù)如時(shí)完成。</p><p>  在編程中我們遇到了很多問(wèn)題和麻煩,其中有一些的確讓我們束手無(wú)策。</p><p>  我們就在網(wǎng)上和圖書館還有班上同學(xué)中尋找答復(fù)。沒(méi)有不可克服的困難。我們都在最后將他們解決了。</p><p>&l

溫馨提示

  • 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)論