微機原理第七個微機原理打字游戲課程設計程序帶注釋_第1頁
微機原理第七個微機原理打字游戲課程設計程序帶注釋_第2頁
微機原理第七個微機原理打字游戲課程設計程序帶注釋_第3頁
微機原理第七個微機原理打字游戲課程設計程序帶注釋_第4頁
微機原理第七個微機原理打字游戲課程設計程序帶注釋_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

。用于輸出菜單:在光標(開始地地方輸出字符串op3menuMACROop1,op2,op3MOVAH,02hMOVBH,00hMOVDH,op1MOVDL,op2INT10hMOVAH,09hLEADX,op3INT21hENDM。將左上角op1,op2)右角op3,op4)定地矩形區(qū)域清除顯示字符clear_screenMACROop1,op2,op3,op4MOVAH,06hMOVAL,00hMOVBH,07hMOVCH,op1MOVCL,op2MOVDH,op3MOVDL,op4INT10h。*******************設光在op1,op2列MOVAH,02hMOVBH,00hMOVDH,op1MOVDL,op2INT10hENDM。**********************************初始化游,用于設置游戲地邊框Init_gameMACROop1,op2,op3,op4,op5,op6MOVCX,00h。******************將標設置在行:DH,:DLMOVDH,op1MOVDL,op2op6:MOVAH,02hMOVBH,00hINT10hPUSHCXMOVAH,0ahMOVAL,op3MOVBH,00hMOVCX,01hINT。******************在指定光標地位置輸出字符op3POPCX

INCCXINCop4。op4用來決定輸出長地方向是列還是行DH行DL:列CMPCX,op5JNEop6。*******************復輸出字符op3,op5,ENDM。***********************************數據段用于初始化游戲有關地數據dataSEGMENTZKDB"WELCOMETOPLAY!$"mes1DB"data:2011/01/08$"mes2DB"pressEnterkeytocontinue......$"mes3DB"whenaletterisdroping,pleasehitit!$"mes4DB"pressspacekeytomes5DB"presskeytoreturnmaininterface!$"mes6DB"pressletter'E'toexit!$"lostDB"Gameover!$"letterDB"jwmilzoeucgpravskntxhdyqfbiytpkwnxlsvxrmofzhgaebudjqnwimzoexrphysfqtvdcgljukda"speedDW30000Dletter_counterDB0present_positionDB0dataENDSCODESEGMENTASSUMECS:CODE,DS:dataSTART:MOVAX,dataMOVDS,AX。*****************首設置游戲地主邊框Init_game00h,00h,0ah,DL,80d,L1Init_game24d,00d,0ah,DL,80d,L2Init_game00d,00d,0ah,DH,25d,L3Init_game00d,79d,0ah,DH,25d,L4clear_screen01d,01d,23d,78dmenu05d,15d,ZKmenu07d,15d,mes1menu09d,15d,mes2menu11d,15d,mes3menu13d,15d,mes4menu15d,15d,mes5menu17d,15d,mes6MOVAH,02hMOVBH,00hMOVDH,22d

MOVDL,33dINT10h。**************設光標地位置MOVAH,01h。********************定DOS為鍵盤輸入字符并回顯功能INT21h。********************判斷輸入地字符CMPAL,0dhJEspeed3。入為enter鍵,跳到游戲主程序CMPAL,45hJEL10。輸入為E,跳到,束游戲L10:JMPexitspeed3:clear_screen01d,01d,23d,78dInit_game23d,01d,01d,DL,78d,next5MOVAH,02hMOVBH,00hMOVDH,01dMOVDL,01dINT10hMOVCX,00hLEASI,letternextletter:MOVDL,[SI]MOVAH,02hINT21hINCSIINCCXCMPCX,78dJEnextcycleJMPnextletter。*********************改正下落地址超過78列地址from_front:SUBpresent_position,78dJMPgobackto_dinextcycle:LEADI,letter。指向下落字母地首地址ADDpresent_position,31d落地字母地列數設置為在前一個下落字母基礎上加上31CMPpresent_position,78d設過地下落地址地列數是否超過78列若過則改正JAfrom_front。********************用于將光標定位在待下落地字,用于操作該字母gobackto_di:ADDDI,WORDPTRpresent_positionDECDIMOVDL,present_positionMOVAH,02h

MOVBH,00hMOVDH,01dINT10h。********************三層循第一層用于判斷是否下落了21次,即一次下落是否完成。第二層和第三層結合構成延控制每一行地下落速度MOVCX,00hnextrow:PUSHCXMOVCX,00hout_cycle:PUSHCXMOVCX,00hin_cycle:INCCXCMPCX,1000hJNEin_cyclePUSHDX。*******************設置DOS為鍵輸入字符且不回顯狀態(tài)MOVAH,06hMOVDL,0ffhINT21hPOPDX。*******************判斷輸字:ESC--入主程序選擇界面space--暫下落字符--消CMPAL,1bhJEto_start1CMPAL,''JEpauseCMPAL,[DI]JEdisappear。************延時程序,用于制下落過程中在每一行地延時時間時間speed*10000pass:POPCXINCCXCMPCX,speed。斷在一地延時是否達到(用于控制延時時間)JEprint。在該行延時時間到且沒有被擊,到print,即該行輸出空格,下一行輸出字母JMPout_cycle。延時未達,重新開始*******************用于響應空格地暫停程序過將DOS置為按鍵輸入且不回顯狀態(tài)實現,除非再次輸入空格,否則循檢查pause:PUSHDXMOVAH,06hMOVDL,0ffh

INT21hPOPDXCMPAL,''JNEpauseJMPpass。**********************用轉接跳轉到開始主程序to_start1:JMPstart***********當一行停留時間達到且沒有被正確擊,將上一行輸出空格該行輸出下落地字母print:。將一行輸出空格MOVAH,0ahMOVAL,''MOvBH,00hMOvCX,01hINT10h。增DH地值使光標指向該行INCDHMOVAH,02hMOVBH,00hINT10h。在行輸出下落地字母MOVAH,0ahMOVAL,[DI]MOVBH,00hMOVCX,01hINT10h。用確定下落次數是否達到21次,即該字母下落是否完成POPCXINCCXCMPCX,21dJEprint_next_letter。下次數達到21次字母下落完,跳到下一個子程序,用于補充下落地字母JMPnextrow。************當下落過程中擊中該字使其消,即輸出空格代替disappear:POPCXPOPCXMOVAH,0ahMOVAL,''MOVBH,00hMOVCX,01hINT10hJMPhit

print_next_letter:。*************將下落到底且有被擊中地位置輸出為空格MOVAH,0ahMOVAL,''MOVBH,00hMOVCX,01hINT10h。*****************將標指向底層一排用于標識字母是否被擊中地位置INCDHMOVAH,02hMOVBH,00hINT10h。在口底框上一次標識字母輸出為空,用于表示該列字母下降時未被擊中MOVAH,0ahMOVAL,''MOVBH,00hMOVCX,01hINT10hINCletter_counter。計算落未被擊中地次數CMPletter_counter,78d。落地未被擊中次數達到78,返回主界面重來過JEcompletehit:。**************用補充新字母把光標設置下落字母地所在列地第一行MOVAH,02hMOVBH,00hMOVDH,01hMOVDL,present_positionINT10h。**************補新字母MOVAL,[DI]ADDAL,7hCMPAL,7ahJAconvey_letter。斷新字母是否超出了z地范圍超出則改正DIsplay:MOVAH,0ahMOVBH,00hMOVCX,01hINT10hJMPnextcycleconvey_letter:SU

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論