匯編語言課程設(shè)計打字游戲_第1頁
匯編語言課程設(shè)計打字游戲_第2頁
匯編語言課程設(shè)計打字游戲_第3頁
匯編語言課程設(shè)計打字游戲_第4頁
匯編語言課程設(shè)計打字游戲_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 TOC o 1-5 h z .課程設(shè)計目的及內(nèi)容2課程設(shè)計目的2課程設(shè)計內(nèi)容2.開發(fā)環(huán)境 2軟、硬件環(huán)境2MASM開發(fā)環(huán)境3.功能分析 3基本功能設(shè)計 3系統(tǒng)程序流程圖4.調(diào)試和運(yùn)行程序5程序調(diào)試 5程序運(yùn)行 6.課程設(shè)計總結(jié)8.參考文獻(xiàn)8附錄 9源程序代碼9打字游戲.課程設(shè)計目的及內(nèi)容課程設(shè)計目的匯編語言是一項實用性很強(qiáng)的技術(shù),學(xué)完教學(xué)大綱規(guī)定的全部內(nèi)容,完成所 有實踐環(huán)節(jié)的基礎(chǔ)上,旨在深化學(xué)生學(xué)習(xí)的匯編語言課程基本知識, 進(jìn)一步掌握 匯編語言課程設(shè)計方法,提高分析問題,解決問題的綜合應(yīng)用能力。學(xué)會查閱和 匯編語言相關(guān)的規(guī)范,手冊等技術(shù)資料。能正確繪制和使用流程圖。掌握匯編語 言程序設(shè)計和

2、程序調(diào)試的基本技能,能進(jìn)行基本的軟件設(shè)計。課程設(shè)計內(nèi)容此課程設(shè)計中,實現(xiàn)的主要功能是在屏幕的頂端排列一排英文字母,底端對應(yīng)排列一排小球或小方塊,屏幕頂端的英文字母以一定的速度隨機(jī)下落,落到底 端的小球或小方塊處,小球或小方塊消失,但如果在英文字母落到底端前,正確按 鍵(落下的英文字母的鍵位),則英文字母消失,英文字母消失或落到底端后,頂端原字母的空處出現(xiàn)另一新字母,按空格鍵則暫停,再按空格鍵字母繼續(xù)下落,如過底端小球或小方塊消失后,則不再出現(xiàn)。.開發(fā)環(huán)境軟、硬件環(huán)境軟件環(huán)境:操作系統(tǒng): Windows 8 64位(DirectX 11)、 BIOS系統(tǒng) DOS系統(tǒng)硬件環(huán)境:處理器:英特爾 第三

3、代酷睿i3-3110M 2.40GHz雙核內(nèi)存:4GB(三星 DDR3 1333MHz)主硬盤:希捷 ST500LM012 HN-M500MBB (500GB/5400 轉(zhuǎn)/分)顯示器:三星 SEC3649(14英寸)MASM開發(fā)環(huán)境Masm是匯編編譯器,是微軟公司開發(fā)的匯編開發(fā)環(huán)境,擁有可視化的開發(fā) 界面,使開發(fā)人員不必再使用 DOS環(huán)境進(jìn)行匯編的開發(fā)的優(yōu)點(diǎn),支持偽指令和 宏匯編,最后編譯生成obj文件,通過link工具連接成可執(zhí)行文件exe。使用步驟為:a使用編45軟件TE.EXE進(jìn)行源程序的編寫。b使用匯編軟件MASM.EXE對源程序匯編。c使用連接軟件LINK.EXE對目標(biāo)文件進(jìn)行連接

4、。d使用調(diào)試軟件DEBUG.EXE對可執(zhí)行程序進(jìn)行調(diào)試。.功能分析基本功能設(shè)計(1)屏幕的頂端排列一排英文字母,底端對應(yīng)排列一排小球或小方塊。(2)屏幕頂端的英文字母以一定的速度隨機(jī)下落,落到底端的小球或小方塊處, 小球或小方塊消失。(3)在英文字母落到底端前,正確按鍵(落下的英文字母的鍵位),則英文字母消 失。(4)按空格鍵則暫停,再按空格鍵字母繼續(xù)下落。(5)英文字母消失或落到底端后,頂端原字母的空處出現(xiàn)另一新字母。(6)底端小球或小方塊消失后,不再出現(xiàn)。(7)程序執(zhí)行后,出現(xiàn)新界面.新界面應(yīng)包含以下內(nèi)容:a顯示時間b.按回車鍵繼續(xù)c.按ESC鍵返回主界面d.按E1退出程序4.調(diào)試和運(yùn)行程

5、序程序調(diào)試(1)打開windows命令窗口,進(jìn)入masm程序的安裝目錄,匯編源文件,如圖2:Microsoft (Ri Macro Asscnhlrr Ucrsion S.MMCo pFi iylit (Ci M j_c iD oft Corp 1991.-190 19口7 . All r* lit c reserved .Source f ilan&n)o Object filonfinie &uic4 lifting ss-referencer.AEMl1 1 CL.O1J1: iMUL.LSTl: 1LNJL.CRF1:5d152 * 3。3胃3之 Btcs synJw】 spnea f

6、rtre fi U*m ng Erro rs 0 Sruere Eriro r5圖2文件鏈接圖(2)鏈接原文件,并運(yùn)行可執(zhí)行文件,如圖 3:Fici-4tortAse4nhlebr UeLaa &tWQN”ijht CC Micsoft Corp萌.198。All ri jilts ireEfrrued *Sollfcc f llsnanc Object f ilenflne $tHLj亡恚 List iny Ck*os )*efrcncel.ASHJ: i tl.OBJ: NJL.LSTJi 1 NJlCRFJ:58152 + 3g3432 Byts enhol 方free修 IMmins

7、Eppcfs修 Snuti-r Err cm|C:srfiSrtlinkFliCrOEort CR? Ou#rla Link立戶 Ue h$ inn 3 ,60|CQpyvi$rht hicrasofr l-eK4.2程序運(yùn)行(1)進(jìn)入主程序段顯示提示信息,程序功能實現(xiàn)如圖 4所示:圖4程序主界面圖(2)按回車鍵進(jìn)入打字練習(xí)頁面,并且開始練習(xí)打字,如圖 5:圖6游戲中按下空格暫停游戲界面(3)進(jìn)入游戲后,隨機(jī)落下一字母,如果按下空格,則暫停。如圖 6所示:(4)在打字練習(xí)過程中,按空格鍵暫停,按ESC1為返回主頁面。最后練習(xí)打字結(jié)束按“E退出程序,如圖7所示:.課程設(shè)計總結(jié)在短暫幾天的時間里,

8、匯編語言課程設(shè)計結(jié)束了,我的收獲很大。通過課程 設(shè)計的編程和對編程過程中遇到的問題的思考,有效的提高了我對匯編的認(rèn)識和理解,切實的提高了我的編程能力,補(bǔ)全了我的不足。通過這次課程設(shè)計,我鞏 固了學(xué)過的知識,能用匯編語言熟練地運(yùn)用順序、選擇、循環(huán)三大結(jié)構(gòu),進(jìn)一步 掌握了各個指令的功能,特別是轉(zhuǎn)向指令,掌握了子程序的定義及調(diào)用,以及正 確地運(yùn)用DEBUG指令。在整個程序的編寫中,調(diào)試占了很大部分的時間。要想 寫好匯編語言的程序,必須認(rèn)真對待代碼的每一個細(xì)節(jié),還必須熟練的掌握debug 命令,這對程序的調(diào)試是非常重要的。 通過這次實際動手能力的培養(yǎng),我進(jìn)一步 熟悉了匯編語言的結(jié)構(gòu)和使用方法,基本達(dá)到

9、了能獨(dú)立閱讀、編制和調(diào)試一定規(guī) 模的匯編語言程序的水平。.參考文獻(xiàn)1楊文顯,宓雙,胡建人.新編匯編語言程序設(shè)計M,北京:清華大學(xué)出版社, 2010: 20-582朱玉龍,任文覽等.匯編語言程序設(shè)計M,北京:清華大學(xué)出版社,2003: 67-893吳向軍等.匯編語言程序設(shè)計M,北京:高等教育出版社,2002: 98-1194沈美明等.IBM-PC匯編語言及程序設(shè)計實驗教程M,北京:清華大學(xué)出版 社,2001: 45-675錢曉捷等.匯編語言程序設(shè)計M,北京:電子工業(yè)出版社,2000: 1-24 6李珍香等.匯編語言程序設(shè)計案例精編M,北京:中國水利水電出版社, 2004:5-167白小明.匯編語

10、言程序設(shè)計M,北京:中國鐵道出版社,2009:56-768王成耀,姚琳.匯編語言程序設(shè)計M,北京:機(jī)械工業(yè)出版社,2003:34-46 9范立南,謝子殿.單片機(jī)原理及應(yīng)用教程M.北京:北京大學(xué)出版社,.1: 123-13010沈美明等.IBM-PC匯編語言及程序設(shè)計實驗教程M,北京:清華大學(xué)出版 社,2001.2: 101-113附錄:源程序代碼INIT_GAME MACROOP1,OP2,OP3,OP4,OP5,OP6MOVCX,00HMOVDH,OP1MOVDL,OP2OP6: MOVAH,02HMOVBH,00HINT10HPUSHCXMOVAH,0AHMOVAL,OP3MOVBH,00

11、HMOVCX,01HINT10HPOPCXINCCXINCOP4CMPCX,OP5JNEOP6ENDMCLEAR_SCREEN MACROOP1,OP2,OP3,OP4;本段程序主要是通過定義變量和調(diào)用實現(xiàn)清屏宏定義MOVAH,06HMOVAL,00HMOVBH,07HMOVCH,OP1MOVCL,OP2MOVDH,OP3MOVDL,OP4INT10HMOVAH,02HMOVBH,00HMOVDH,00HMOVINTDL,00H10HENDMMENU MACROOP1,OP2,OP3;本段程序主要是通過定義變量和調(diào)用來實現(xiàn)菜單顯示宏定義MOVAH,02HMOVBH,00HMOVDH,OP1MO

12、VDL,OP2INT10HMOVAH,09HLEADX,OP3INT21HENDMDATAZKNOMEGMEG1IT!$”MEG2MEG3INTERFACEDMEG4SPEEDLETTERSSEGMENTDBWELCOME TO PLAY$DBDATE:2014-6-25$”DBPRESS ENTER KEY TO CONTINUE.$DBWHEN A LETTER IS DROPPING,PLEASEHITDBPRESS SPACE KEY TO PAUSE!$DBPRESS ESC KEY TO RETURN MAINDBPRESS LETTER E TO EXIT!$DW600DDBJW

13、MILZOEUCGPRA VSKNTXHDYQFBDBIYTPKWNXLSVXRMOFZHGAEBUDJQDBNWIMZOEXRPHYSFQTVDCGLJUKDALETTERSBAK DBDBDBJWMILZOEUCGPRA VSKNTXHDYQFBIYTPKWNXLSVXRMOFZHGAEBUDJQNWIMZOEXRPHYSFQTVDCGLJUKDALETTERCOUNTER DBLIFE FLAG DB78 DUP(0)POSITIONFLAG DB78 DUP(0)PRESENT_POSITION DBDATA ENDS;本段主要用于主界面的顯示,起到提示作用 CSEG SEGMENT

14、PARA STACK stackDB64 DUP(0)ENDSCODE SEGMENTMAINPROCFARASSUMECS:CODE,DS:DATA,SS:CSEGSTART:MOVAX,DATAMOVDS,AXMOVLETTER_COUNTER,00HMOVPRESENT_POSITION,1LEASI,POSITION_FLAGMOVAH,00HMOVCX,00HINIT_POSTION_FLAG:MOVSI,AHINCSIINCCXCMPCX,78DJNEINIT_POSTION_FLAGLEADI,LETTERSLEASI,LETTERS_BAKMOVCX,00HINIT_LETTE

15、RS:MOVAH,SIMOVDI,AHINCSIINCDIINCCXCMPCX,78DJNEINIT LETTERSMOVAH,00HLEASI,LIFE_FLAGMOVCX,00HINIT_LIFE_FLAG:MOVSI,AHINCSIINCCXCMPCX,78DJNEINIT_LIFE_FLAGMOVCX,00HMOVAH,01HORCH,00010000BINT10HCLEAR_SCREENINIT_GAME INIT_GAME INIT_GAME INIT_GAME00D,00D,24D,79D00D,00D,0AH,DL,80D,NEXTSIGN124D,00D,0AH,DL,80D

16、,NEXTSIGN200D,00D,0AH,DH,25D,NEXTSIGN300D,79D,0AH,DH,25D,NEXTSIGN4MENU 05D,15D,ZK;本段程序主要是對菜單信息的宏調(diào)用MENU07H,15D,NOMENU09D,15D,MEGMENU11D,15D,MEG1MENU13D,15D,MEG2MENU15D,15D,MEG3MENU17D,15D,MEG4PUT: MOVAH,02H;此段用來設(shè)置光標(biāo)位置MOVBH,00HMOVDH,22DMOVDL,33DINT 10Hmov ah,01h;通過本段代碼,能夠從鍵盤輸入任意字符INT21HCMPAL,0DHJESPEE

17、D3CMPAL,45HJEEXITEXIT:MOVAH,4CHINT21HSPEED3:MOVAX,SPEED+12MOVSPEED,AXJMPBEGINBEGIN:CLEAR._SCREEN01D,01D,23D,78D第二次使用清屏宏調(diào)用CLEAR_SCREEN01D,01D,23D,78DINIT_GAME23D,01D,01H,DL,78D,NEXTSIGN5MOVAH,02HMOVBH,00HMOVDH,01HMOVDL,01HINT10HMOVCX,00HLEASI,LETTERSNEXTLETTER:MOVAH,02H用來示字母MOVDL,SIINT21HINCSIINCCXCM

18、PCX,78DJENEXTCYCLEjmp NEXTLETTERFROM_FRONT:SUBJMPPRESENT_POSITION,78DGOBACKTO_SIFIND_ZERO:CMPLETTER_COUNTER,78DJERECYCLECMPPRESENT_POSITION,78DJEFROM_ONEMOVAH,00HNEXTSI:ADDPRESENT_POSITION,01HINCSICMPSI,AHJEGOBACKTO_DICMPPRESENT_POSITION,78DJEFROM_ONEJMPNEXTSIFROM_ONE:MOVPRESENT_POSITION,01HJMPGOBAC

19、KTO_SIRECYCLE:MOVLE口ER_COUNIER,00HMOVPRESENT_POSITION,01DLEASI,POSITION_FLAGMOVCX,00HMOVAH,00HCLEARSI:MOVSI,AHINCCXCMPCX,78DJENEXTCYCLEINCSIJMPCLEARSINEXTCYCLE:LEADI,LETTERSADDCMPlea si,position_flagPRESENT_POSITION,31DPRESENT_POSITION,78JAFROM FRONTGOBACKTO_SI:ADDSI,WORD PTR PRESENT_POSITIONDECSIMO

20、VAH,SICMPAH,01HJEFIND_ZEROGOBACKTO_DI:MOVAH,01HMOVSI,AHADDDI,WORD PTR PRESENT_POSITIONDECDIMOV DL,PRESENT_POSITIONMOVAH,02HMOVBH,00HMOVDH,01HINT 10HMOVCX,00HNEXTROW: PUSHCXMOV CX,00HOUT_CYCLE:;時間的延遲 PUSH CXMOVCX,00HIN_CYCLE:ADDCX,01HCMPCX,1000JNEIN_CYCLEPUSHDXmov ah,06h;從鍵盤輸入字符MOV DL,0FFHINT 21HPOPD

21、XJZPASSCMPAL,1BH;如果鍵入ESC,則返回主菜單JETO_START1CMPAL,;如果鍵入SPACE,則游戲暫停JEPAUSECMPAL,DI;輸入字母止確!則字母消失JEDISAPPEARPASS:POPCXINCCXCMPCX,SPEEDJEPRINTJMPOUT_CYCLEPAUSE:PUSHDX;用來暫停處理MOVAH,06HMOVDL,0FFHINT21HPOPDXCMPAL,JNEPAUSEJMPPASSTO_START1:;用于返回主菜單JMPSTARTPRINT:MOVAH,0AH;在當(dāng)前光標(biāo)位置寫空格MOVAL,MOVBH,00HMOVCX,01HINT10H

22、INCDHMOVAH,02H;用來改變光標(biāo)位置MOVBH,00HINT10HMOVAH,0AH;在當(dāng)前光標(biāo)位置寫字母MOVAL,DIMOVBH,00HMOVCX,01HINT10HPOPCXINCCXCMPCX,21DJEPRINI_NEXI_LE口ERJMPNEXTROW;下一行DISAPPEAR:;擊中字母后輸出空格POPCXPOPCXMOVAH,0AHMOVAL,MOVBH,00HMOVCX,01HINT10HJMPHITPRINT_NEXT_LETTER:LEASI,LIFE_FLAGADDSI,WORD PTR PRESENT_POSITIONDECSIMOVMOV MOVMOVINTINCMOVMOVINTMOVMOVMOVMOVINTMOVMOVHIT: MOVMOVMOVMOV INTMOV 出現(xiàn)下一個新字母的數(shù)法ADD CMP JAmov ah,0ahMOV MOVINTMOV ADD J

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論