匯編課程設(shè)計--函數(shù)調(diào)用_第1頁
已閱讀1頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  1.設(shè)計任務(wù)</b></p><p>  在本次課程設(shè)計中,我組報的是編寫打字游戲,該程序可以分辨輸入的自與系統(tǒng)給出的字的相同與否,并作出相應(yīng)的顏色處理。</p><p><b>  2.設(shè)計目的</b></p><p>  本次課程設(shè)計的目的主要是將課堂上所學(xué)的知識學(xué)以致用,并同過程序的制作

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

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

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

5、5;25的界面使整個程序更加美觀。</p><p>  程序定義了choosepage函數(shù)來實現(xiàn)頁面的轉(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)生新的頁面,讓程序的分布更加人性化。</p><p>  游戲主程序調(diào)用BIOS int 10 的9號功能實現(xiàn)對目標(biāo)文本的顏色和定位,。游戲主程序

7、可以用int 16 mov ah,00從鍵盤讀取輸入的字符在調(diào)用int 21 mov ah,01 讓鍵盤輸入顯示在屏幕中 al=輸入的字符,將鍵盤輸入的字符與目標(biāo)文本進(jìn)行比較用cmp指令對輸入的文本和目標(biāo)文本進(jìn)行比較,再利用選擇語句將錯誤的輸入字符顯示為紅色,將正確的輸入字符顯示為綠色。在整個字符串結(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號功能 書上478頁-----</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)行并沒有立刻進(jìn)行調(diào)試而是在wind

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

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

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

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

溫馨提示

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

評論

0/150

提交評論