freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

小鳥動畫程序課程設(shè)計(編輯修改稿)

2025-02-14 15:22 本頁面
 

【文章內(nèi)容簡介】 量為0的分支操作,并在返回前又將變量置1,這樣就使程序能正確地回的暫停停位置。通過以上暫停子程序設(shè)計思路分析,可設(shè)計其詳細(xì)流程圖如圖6所示。圖6 暫停子程序流程圖PAUSE PROC mov ah,0 。清空鍵盤緩存 int 16h CMP AL,39。Q39。 JNZ E0 CALL FAR PTR QUIT 。若輸入Q則結(jié)束,退出程序 E0: CMP AL,39。C39。 JZ F0 。若輸入C則繼續(xù)顯示小鳥 JMP PAUSE 。若輸入其它字符則保持暫停狀態(tài) F0: CMP COUNT0,0 JZ G0 。若count0為0,則返回主程序 CMP COUNT1,0 JZ G1 。若count1為0,則返回飛翔子程序 CMP COUNT2,0 JZ G2 。若count2為0,則返回鳴叫子程序 CMP COUNT3,0 JZ G3 。若count3為0,則返回飛翔并鳴叫子程序 G0: MOV COUNT0,1 JMP FAR PTR DISP0G1: MOV COUNT1,1 JMP FAR PTR DISP1G2: MOV COUNT2,1 JMP FAR PTR FREGG3: MOV COUNT3,1 JMP FAR PTR DISP2 RETPAUSE ENDP ,這里僅給出本程序中小鳥的顯示步驟。首先對屏幕進(jìn)行清屏,之后將DI指向所要顯示的圖案,并將光標(biāo)位置指向小鳥圖案的參考位置,然后調(diào)用BIOS的10H中斷的9號功能顯示小鳥圖案第一個字符。再將DI加4指向下一個字符,重復(fù)上述步驟,直至所有字符顯示完畢結(jié)束。最后再調(diào)用一個延時程序即可顯示并看到所有顯示的小鳥圖案。通過以上暫停子程序設(shè)計思路分析,可設(shè)計其詳細(xì)流程圖如圖7所示。圖7 小鳥顯示子程序流程圖 去掉延時子程序即可得到不帶延時的小鳥顯示圖案子程序DISPLAY1。FLY_BLEAT PROC DISP2: LEA DI,BIRD1 。顯示小鳥 CALL DISPLAY1 CALL BLEAT_DLY LEA DI,BIRD2 CALL DISPLAY0 LEA DI,BIRD3 CALL DISPLAY0 PUSH AX MOV AX,DXF INC AL 。小鳥向前移動1格 MOV DXF,AX POP AX mov ah,1 。從鍵盤讀取字符到AL寄存器 int 16h JZ DISP2 。若無輸入則持續(xù)飛翔等待 CMP AL,39。Q39。 JNZ A3 CALL FAR PTR QUIT 。若輸入Q則結(jié)束,退出程序 A3: CMP AL,39。P39。 JNZ B3 MOV COUNT3,0 CALL PAUSE 。若輸入P則暫停 B3:CMP AL,39。B39。 JNZ C3 CALL BLEAT 。若輸入B則小鳥只是鳴叫 C3: CMP AL,39。S39。 JNZ D3 CALL FLY 。若輸入S則小鳥只是飛翔 D3: mov ah,0 。清空鍵盤緩存 int 16h JMP DISP2 。若輸入其它則持續(xù)飛翔鳴叫等待 RETFLY_BLEAT ENDP 4調(diào)試記錄及結(jié)果分析1)運(yùn)行MF2KP匯編軟件,在里面編輯源程序,編輯完成之后,保存該該文件;2)接著仍用上面的軟件進(jìn)行編譯,連接,;3)運(yùn)行所生成的EXE文件即可產(chǎn)生所需要的結(jié)果。程序正常運(yùn)行后按第一節(jié)所提出的要求分別對本程序的各項功能進(jìn)行驗證,并將調(diào)試結(jié)果記錄如圖8至圖13所示。圖8 小鳥圖案顯示1圖9 小鳥圖案顯示2圖10 小鳥圖案顯示3圖11 小鳥飛翔顯示1圖12 小鳥飛翔顯示2圖13 小鳥飛翔顯示3運(yùn)行后當(dāng)無字符輸入時,屏幕上顯示小鳥動態(tài)圖案;當(dāng)按下P鍵,程序暫停,屏幕上只剩下光標(biāo);按C鍵后繼續(xù)。此時若按下S鍵,小鳥開始飛翔。在飛翔時按下P鍵,小鳥暫停,按C繼續(xù);按下B鍵則小鳥在飛翔的同時還能鳴叫。若按下B鍵,小鳥鳴叫。在鳴叫時按下P鍵,小鳥暫停,按C繼續(xù);按下S鍵則小鳥在鳴叫的同時還能飛翔。在小鳥飛翔并鳴叫時,按下P鍵,小鳥暫停,按C繼續(xù);按下S鍵后,小鳥只飛翔;按下B鍵后,小鳥只鳴叫。在程序運(yùn)行的任何時候,按下Q鍵,程序立刻結(jié)束。通過以上調(diào)試結(jié)果可以發(fā)現(xiàn),所設(shè)計的程序完全滿足設(shè)計任務(wù)要求,程序設(shè)計成功。 在編程過程中,由于基礎(chǔ)知識掌握不牢,出現(xiàn)了諸多問題,下面將選取其中部分做出詳細(xì)記錄并給出詳細(xì)解決方案。⑴運(yùn)行主程序后,當(dāng)沒有字符輸入時,屏幕上只有光標(biāo)而沒有小鳥圖案。出現(xiàn)此問題時,主程序鍵盤檢測中使用的是BIOS中斷16H的0號功能。此功能在鍵盤緩存區(qū)為空時,系統(tǒng)將等待鍵盤輸入以進(jìn)行后續(xù)指令操作。而程序剛運(yùn)行時,鍵盤緩存區(qū)為空,這時在沒有字符輸入時,系統(tǒng)就不能進(jìn)行后續(xù)操作,也就不能循環(huán)顯示小鳥圖案。后來通過查閱資料,用16H中斷的1號功能代替了0號功能,上述問題就得到了完美的解決。在16H的1號功能中,當(dāng)鍵盤緩存區(qū)為空時,標(biāo)志位ZF為1,反之則為0。在設(shè)計時可通過判斷ZF來實現(xiàn)分支選擇,進(jìn)行后續(xù)指令操作。⑵在調(diào)試程序過程中,當(dāng)有無效按鍵輸入時,程序的功能就被打亂。造成此問題的原因還是由于16H中斷掌握不牢所致。通過問題1的分析,我們很容易發(fā)現(xiàn)這是因為緩存區(qū)不為空而影響了下一次字符判斷。所以在每一次無效輸入后必須對緩存區(qū)進(jìn)行清空。由于BIOS的16號中斷在每讀取鍵盤緩存區(qū)中的一個字符時,此字符將會從緩存隊列中被移除。故此處我們可以采用這種辦法對鍵盤緩存區(qū)進(jìn)行清空,即:mov ah,0 int 16h ⑶小鳥飛翔時,按下B鍵小鳥能鳴叫,但回到了起始位置這是由于原先在各子程序的開始都對光標(biāo)的位置進(jìn)行了初始化,使小鳥從飛翔狀態(tài)跳到另一個狀態(tài)時,光標(biāo)位置發(fā)生了變化,出現(xiàn)不希望的結(jié)果。為了解決上述問題,在數(shù)據(jù)段定義了兩個變量,用于記錄光標(biāo)位置,跟蹤小鳥飛翔狀態(tài),使上述問題得到了解決。 為了使小鳥動畫更貼近實際小鳥,下面首先對小鳥的飛翔速度和鳴叫聲音進(jìn)行適當(dāng)?shù)男薷摹?這里首先對小鳥展翅以及飛翔的速度進(jìn)行調(diào)整,這里采用修改延時子程序中DX的值來實現(xiàn)對小鳥展翅以及飛翔的速度的修改。通過不斷的調(diào)試比較,最后選定DX的值為30000,此時小鳥展翅以及飛翔的速度協(xié)調(diào)。 小鳥鳴叫聲音的優(yōu)化包含音調(diào)優(yōu)化和頻率優(yōu)化兩個方面。音調(diào)的優(yōu)化主要通過調(diào)節(jié)參數(shù)MUS_FREG和MUS_TIME實現(xiàn),其中MUS_FREG是主要調(diào)節(jié)的對象,其值越大,音調(diào)越高。由于小鳥鳴叫的音調(diào)較高,這里對MUS_FREG的值適當(dāng)增大。通過不斷調(diào)試比較,選擇MUS_FREG的值為4000,MUS_TIME的值為2000,能達(dá)到較好的效果。小鳥頻率的優(yōu)化主要是調(diào)節(jié)兩次鳴叫之間的間隔時間。由于實際中小鳥兩聲鳴叫間有一定的間隔,且時間較長,這里在小鳥鳴叫子程序中調(diào)用通用發(fā)聲子程序后調(diào)用兩次延時子程序,經(jīng)調(diào)試能達(dá)到比較好的效果。 為了便于打印和文檔閱讀,這里特將背景修改為白色。具體實現(xiàn)是在設(shè)置了屏幕顯示方式后調(diào)用一次清屏子程序,在清屏子程序中設(shè)置BH為0f0H,以白底黑字填充屏幕,即可達(dá)到修改屏幕背景的目的。與此對應(yīng),將屏幕顯示方式也修改為黑白文檔形式,寫字符時也采用黑白方式,將10H號中斷的9號功能調(diào)用均改為10號功能調(diào)用。經(jīng)調(diào)試后能達(dá)到預(yù)期效果。 6心得與體會這次課程設(shè)計對我來說,確實是一項不簡單的任務(wù)。經(jīng)過幾天的努力,不斷地翻書查資料,向老師同學(xué)請教,對匯編語言也有了進(jìn)一步的認(rèn)識和掌握,進(jìn)一步理解了各個指令的功能,特別是轉(zhuǎn)向指令和中斷指令,也熟悉了子程序的定義和調(diào)用。在程序設(shè)計過程中我也遇到了許多問題,例于對BIOS的10H中斷的調(diào)用。由于對CPU對中斷響應(yīng)的原理及過程的不夠理解,在調(diào)用時沒有考慮到10H中斷對鍵盤輸入緩存區(qū)的影響,以致設(shè)計出來的程序不能正確讀取鍵盤輸入的數(shù)據(jù),無法實現(xiàn)預(yù)期的功能。在調(diào)用子程序時也由于沒能對子程序中使用的寄存器進(jìn)行及時的保護(hù),導(dǎo)致子程序調(diào)用結(jié)束后,系統(tǒng)功能紊亂。 通過這次親自動手認(rèn)真做課程設(shè)計,我進(jìn)一步熟悉了匯編語音的結(jié)構(gòu)和使用方法,以前學(xué)習(xí)時不太懂的地方,有了更深刻的認(rèn)識,基本達(dá)到了能讀懂匯編語言理解其功能的水平。這次課程設(shè)計也讓我獲得了寶貴的經(jīng)驗,為以后的畢業(yè)設(shè)計打下了良好的基礎(chǔ),培養(yǎng)了自己選用參考書,查閱文獻(xiàn)資料的能力,提高獨(dú)立思考,深入研究,分析問題解決問題的能力,知道了理論和實踐相結(jié)合的重要性。學(xué)習(xí)就是不斷地發(fā)現(xiàn)問題解決問題的過程,在這期間我們會學(xué)會很多東西,要注意多動腦子勤思考,不懂得地方要向老師請教,才能有更大的提升。 7參考文獻(xiàn)[1] 、匯編與接口技術(shù)[M].北京:[2] [M].北京:[3] 周佩玲、彭虎、[M]. 北京:[4] 沈美明、[M].北京:[5] 張雪蘭、譚毓安、——從DOS到WINDOWS[M].北京: [6] [M].廈門: 附錄1:小鳥動畫程序。程序:小鳥動畫程序。功能:。程序運(yùn)行后,在無輸入情況下,屏幕上顯示小鳥圖案;。程序運(yùn)行后,按下S鍵,小鳥飛翔;按下B鍵,小鳥鳴叫;按下P鍵,程序暫停;按下Q鍵,程序結(jié)束;。在飛翔狀態(tài)下,按B鍵,小鳥同時鳴叫;按P鍵,程序暫停;按下Q鍵,程序結(jié)束;。在鳴叫狀態(tài)下,按S鍵,小鳥同時飛翔;按P鍵,程序暫停;按下Q鍵,程序結(jié)束;。在同時飛翔和鳴叫狀態(tài)下,按B鍵,小鳥只鳴叫,回到功能4;按S鍵,小鳥只飛翔,回到功能3;按P鍵,程序暫停;按下Q鍵,程序結(jié)束;。在暫停狀態(tài)下,按C鍵,程序回到暫停前狀態(tài)繼續(xù)運(yùn)行;按下Q鍵,程序結(jié)束;。任何情況下,當(dāng)輸入無效鍵時,程序循環(huán)等待下一次輸入。作者:梅浪奇。第六次修改小鳥圖案更形象 。時間:2013/1/12。第一次修改時間:2013/1/6 基本功能實現(xiàn) 。第二次修改時間:2013/1/8 背景白色 。第三次修改時間:2013/1/9 鳴叫聲為樂曲 。第四次修改時間:2013/1/10 小鳥叫聲更形象 。第五次修改時間:2013/1/12 小鳥圖案換成多字符 。DATA SEGMENTINFO1 DB 0DH,0AH,39。INPUT B,C,P, OR Q $39。INFO2 DB 0
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1