![Windows2000.xp.2003ghost安裝盤制作教程_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/29/e6a66891-463a-4644-9d16-9ded4b598d74/e6a66891-463a-4644-9d16-9ded4b598d741.gif)
![Windows2000.xp.2003ghost安裝盤制作教程_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/29/e6a66891-463a-4644-9d16-9ded4b598d74/e6a66891-463a-4644-9d16-9ded4b598d742.gif)
![Windows2000.xp.2003ghost安裝盤制作教程_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/29/e6a66891-463a-4644-9d16-9ded4b598d74/e6a66891-463a-4644-9d16-9ded4b598d743.gif)
![Windows2000.xp.2003ghost安裝盤制作教程_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/29/e6a66891-463a-4644-9d16-9ded4b598d74/e6a66891-463a-4644-9d16-9ded4b598d744.gif)
![Windows2000.xp.2003ghost安裝盤制作教程_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/29/e6a66891-463a-4644-9d16-9ded4b598d74/e6a66891-463a-4644-9d16-9ded4b598d745.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、匯編語言程序設(shè)計課程設(shè)計報告題 目: 練習(xí)打字小游戲 指導(dǎo)老師: 姓 名: 學(xué) 號: 專 業(yè): 班 級: 2011年6月28日1設(shè)計目的匯編語言是一門面向機(jī)器的語言,它是能夠利用計算機(jī)所有硬件特性并能直接控制硬件的唯一語言。由于匯編語言如此的接近計算機(jī)硬件,因此,它可以最大限度地發(fā)揮計算機(jī)硬件的性能。使用匯編語言完成課程設(shè)計,能進(jìn)一步學(xué)習(xí)匯編語言這門技術(shù),提高編程思想和編程技術(shù)。本程序時使用匯編語言,設(shè)計一個打字練習(xí)小游戲的程序。運(yùn)行程序時,顯示菜單界面。按下Enter鍵后界面上方出現(xiàn)由26個字母組成的亂序行。這時有字母隨即下落。這時候在鍵盤上敲擊該字母,如果字母正確,則這個字母消失,下一個字
2、母開始下落;如果字母不正確,則該字母落下后將失去下方的一個圖標(biāo),繼而產(chǎn)生下一個字母。在程序運(yùn)行時,按Space鍵可以暫停程序,按Esc鍵返回主界面。通過設(shè)計本程序,使我們進(jìn)一步了解匯編程序的編譯、連接、執(zhí)行操作。2詳細(xì)設(shè)計2.1 主模塊及子模塊說明首先先定義一個清屏幕的宏。調(diào)用這個宏,就清除Dos界面上的所有內(nèi)容,專門顯示我們所需要的菜單。接著定義我們的數(shù)據(jù)段代碼。在數(shù)據(jù)段中,有我們菜單中所需要顯示的提示信息,還有要顯示在界面上方的字母亂序,以及給顯示字母亂序所留出的數(shù)據(jù)空間。接下來就是定義堆棧段代碼,為各段留下空間。再下來就是最重要的代碼段,因為所有的功能都是在代碼段中實現(xiàn)的。代碼段中先實現(xiàn)
3、顯示主菜單、按Enter鍵開始程序這幾項簡單的功能。接著實現(xiàn)顯示字母亂序的功能,主要思想是將字母亂序放到之前定義的寄存器中。然后實現(xiàn)接受鍵盤所輸入的內(nèi)容的功能。如果輸入的是Esc,則返回主菜單;如果輸入的是Space,程序就暫停;如果是正確的字母,該字母消失。消失的思想就是在當(dāng)前字母位置輸入空格,然后光標(biāo)放到下一個下落的字母的位置。以上就是這個程序的總體設(shè)計思想。下面給出各部分的解釋。(1)clear_screen macro op1,op2,op3,op4這是一個清屏宏定義。op1、 op2是字符顯示處的行列坐標(biāo),op3、op4是光標(biāo)所在位置的坐標(biāo)。(2)data segmentdata e
4、nds這是數(shù)據(jù)段的代碼,其中要定義菜單的內(nèi)容,界面上方的字母亂序,給字母亂序留出的數(shù)據(jù)空間,以及字母下落的速度。(3)stack segment para stack stack db 64 dup(0) stack ends這是堆棧段。是為了給代碼段和數(shù)據(jù)段留下空間。此段不定義也能通過編譯,只是在連接的時候會有一個警告,但是也能正確地運(yùn)行程序。(4)code segmentmain proc far assume cs:code,ds:data,ss:stackmain endpcode ends這里是代碼段,是最重要的部分。整個程序功能的實現(xiàn)全依仗于代碼段。先聲明一個主過程,過程的類型是F
5、AR類型,因為要用到段間調(diào)用。然后將代碼段、數(shù)據(jù)段、堆棧段放入到相應(yīng)的寄存器。接下來就是對所有功能的定義。2.2主模塊流程圖 程序開始顯示菜單鍵盤輸入選擇速度提示頁面E退出Esc返回主菜單Enter游戲開始字母顯示字母下落暫停處理退出處理2.3我所負(fù)責(zé)模塊詳細(xì)設(shè)計(1)clr macro op1,op2,op3,op4,op5,op6。mov cx,00h mov dh,op1 mov dl,op2 op6: mov ah,02h mov bh,00h int 10h push cx mov ah,0ah mov al,op3 mov bh,00h mov cx,01h int 10h pop
6、 cx inc cx inc op4 cmp cx,op5 jne op6 endm這是一個宏定義。op1、 op2是字符顯示處的行列坐標(biāo),op3、op4是光標(biāo)所在位置的坐標(biāo),op5是循環(huán)的次數(shù),op6是四周的標(biāo)志。(2)clear_screen macro op1,op2,op3,op4 mov ah,06h mov al,00h mov bh,07h mov ch,op1 mov cl,op2 mov dh,op3 mov dl,op4 int 10h mov ah,02h mov bh,00h mov dh,00h mov dl,00h int 10h endm這是清屏宏定義(3)men
7、u macro op1,op2,op3 mov ah,02h mov bh,00h mov dh,op1 mov dl,op2 int 10h mov ah,09h lea dx,op3 int 21h endm這是菜單宏定義(4)data segment forth db Made by forth$ no db NO.:4$ meg db Let us have a game!Come on!$ meg1 db *Select Menu*$ meg2 dbPlease select the game speed,ESC to quit.$ meg3 db 1.Very slow Too e
8、asy,speed up!$ meg4 db 2.Slow Everybody can deal.$ meg5 db 3.Nomal I think you can deal!$ meg6 db 4.Fast A challenge.Pay attention!$ meg7 db 5.Very Fast Too hard,Have a try?$ meg8 db6.Fastest Are you crazy?$ meg9 db *Select the number among 1-6 and press ENTER to start!*$ meg10 db Game Speed Select:
9、$ hotkey db When you are playing games:$ hotkey1 db ESC to return to menu$ hotkey2 db SPACE to pause the game$ hotkey3dbE to exit$hotkey4 db Press any key to play games.$ hotkey5 db Are you ready?$ failmeg db The letter is arrive the bottom, You are lost ! :($ failmeg0 db Press ENTER to go on.$ fail
10、meg1 db Game is over!$ failmeg2 db Press ENTER to return menu and press ESC to return!$ failmeg3 db Bye-Bye!Thank for your playing!$ failmeg4 db Press any key to quit.$ speed dw 00d,5000d,4000d,3000d,2000d,1000d,500d letters db jwmilzoeucgpravskntxhdyqfb db iytpkwnxlsvxrmofzhgaebudjq db nwimzoexrphy
11、sfqtvdcgljukda letters_bak db jwmilzoeucgpravskntxhdyqfb db iytpkwnxlsvxrmofzhgaebudjq db nwimzoexrphysfqtvdcgljukda letter_counter db 0 life_flag db 78 dup(0) position_flag db 78 dup(0) present_position db 1 data ends這部分是對菜單各部分項的顯示的定義,以方便后續(xù)工作中,各提示語句的調(diào)用 (4)start: mov ax,data mov ds,ax mov letter_cou
12、nter,00h ;記錄正確集中字符數(shù)mov present_position,1 ;記錄當(dāng)前光標(biāo)的列數(shù)lea si,position_flag ;每個字符是否下落過mov ah,00h mov cx,00h init_postion_flag: ;初始化每個字符都未落下過mov si,ah inc si inc cx cmp cx,78d jne init_postion_flag ;結(jié)束lea di,letters ;將letters_bak中的字符轉(zhuǎn)入letters中l(wèi)ea si,letters_bak mov cx,00h init_letters: mov ah,si mov di,
13、ah inc si inc di inc cx cmp cx,78d jne init_letters ;到此結(jié)束 mov ah,00h lea si,life_flag mov cx,00h init_life_flag: ;life_flag全置零mov si,ah inc si inc cx cmp cx,78d jne init_life_flag ;結(jié)束mov cx,00h mov ah,01h or ch,00010000b int 10h clear_screen 00d,00d,24d,79d Init_game 00d,00d,0ah,dl,80d,nextsign1 Ini
14、t_game 24d,00d,0ah,dl,80d,nextsign2 Init_game 00d,00d,0ah,dh,25d,nextsign3 Init_game 00d,79d,0ah,dh,25d,nextsign4 menu 01d,15d,meg ;菜單信息的宏展開 menu 01h,61d,forth menu 03d,20d,meg1 menu 03d,68d,no menu 05d,15d,meg2 menu 07d,15d,meg3 menu 09d,15d,meg4 menu 11d,15d,meg5 menu 13d,15d,meg6 menu 15d,15d,meg
15、7 menu 17d,15d,meg8 menu 19d,15d,meg9 menu 22d,15d,meg10這段就是我所負(fù)責(zé)的代碼段的功能實現(xiàn)部分,主要定義的是清屏宏、菜單宏、提示信息的定義、字符的初始化以及前期的菜單宏的展開,以及部分計數(shù)等功能。本段主要的設(shè)計思想如下:關(guān)于數(shù)據(jù)段定義。變量menu是顯示的菜單,它采用的是DB偽指令,后面跟的是字節(jié)常量。變量speed的作用是控制字母下落的速度,這里用的是DW偽指令,其數(shù)值是十進(jìn)制的2000。變量letters是界面上方的字母亂序,也是用DB偽指令,將字母賦給它。letter_counter是判斷字母個數(shù)的變量,先給它賦初值0,與字母的個數(shù)
16、進(jìn)行比較,之后要讓這個變量進(jìn)行自增運(yùn)算,直到將所有字母顯示在界面中。life_flag定義的是字母空間,這里定義的是78,也就是letters的個數(shù)。position_flag是光標(biāo)位置標(biāo)志,這個光標(biāo)是從界面上方的字母中產(chǎn)生的,所以也賦值為78。present_position定義的是當(dāng)前位置。之后結(jié)束數(shù)據(jù)段的定義。數(shù)據(jù)段的流程圖如圖2-1。數(shù)據(jù)段開始菜單信息的定義下落速度定義顯示字母的定義字母的個數(shù)、位置標(biāo)簽、當(dāng)前位置等參數(shù)的定義數(shù)據(jù)段定義結(jié)束圖2-1 數(shù)據(jù)段流程圖3運(yùn)行界面分析在編譯器中通過編譯、連接、運(yùn)行后,進(jìn)入游戲初始界面,如圖3-1所示。圖3-1 游戲初始界面選擇速度后,進(jìn)入到等待界面圖3-2 等待界面4心得體會剛拿到這個題目覺得特別難,感覺無從下手。在做準(zhǔn)備工作的時候,我從網(wǎng)上找到了相關(guān)的代碼,照著別人的步驟感受匯編語言編寫程序的思路。很多地方都不是太明白,但是通過查詢課本以及上網(wǎng)找相關(guān)資料,還是把一些內(nèi)容理解了。在編寫的時候,我也是按照別人的思路,一步一步進(jìn)行。很多地方看似簡單,但是等到自己親自實踐的時候就編的很復(fù)雜。匯編語言的前后聯(lián)系非常緊密,我們這個課程設(shè)計更是這樣,要和小組的其它成員所負(fù)責(zé)的設(shè)計部分緊密聯(lián)系在一起。任何一個人要改一點東西的話整個程序的很多地方都要重新做,可以說是牽一發(fā)而動全身。所以在編寫的時候要很
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度公司與家政服務(wù)公司全面合作協(xié)議書
- 2025年度建筑工程招標(biāo)代理合同書封面
- 2025年度建筑工程施工質(zhì)量驗收承包合同標(biāo)準(zhǔn)
- 2025年度商業(yè)秘密保護(hù)授權(quán)委托書范本
- 2025年度家庭裝修合同(含智能家居安全防護(hù)系統(tǒng))
- 2025年度工作服定制與職業(yè)健康安全培訓(xùn)協(xié)議
- 2025年中國口服液行業(yè)市場調(diào)查研究及投資前景預(yù)測報告
- 2025年血漿假牙行業(yè)深度研究分析報告
- 2025年度乙方個人減肥訓(xùn)練方案合同
- 2025年度智慧社區(qū)基礎(chǔ)施工及智能化系統(tǒng)集成合同
- GA 2139-2024警用防暴臂盾
- DL∕T 5810-2020 電化學(xué)儲能電站接入電網(wǎng)設(shè)計規(guī)范
- 人教版高中物理必修二同步練習(xí)及答案
- 《行政倫理學(xué)教程(第四版)》課件 第7、8章?行政人格、行政組織倫理
- 2024年江蘇蘇??毓杉瘓F(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 2023年4月自考00504藝術(shù)概論試題及答案含解析
- 美麗的大自然(教案)2023-2024學(xué)年美術(shù)一年級下冊
- 2024年低壓電工考試題庫(試題含答案)
- 成都特色民俗課件
- 地質(zhì)勘探行業(yè)分析
- 花城版音樂四下-第四課-認(rèn)知音樂節(jié)奏(教案)
評論
0/150
提交評論