資源描述:
《微機(jī)原理課程設(shè)計-小鳥動畫》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、摘要:隨著計算機(jī)的快速發(fā)展,用匯編語言來實現(xiàn)動畫更簡單,直接和便捷,它的目標(biāo)代碼簡短,占用內(nèi)存較少,執(zhí)行速度較快,是高效的程序設(shè)計語言。本文主要對汽車小鳥動畫進(jìn)行程序設(shè)計,并通過masm軟件進(jìn)行運(yùn)行,通過輸入不同的數(shù)字對程序的控制,采用段內(nèi)調(diào)用子程序的方法來實現(xiàn),使用了堆棧技術(shù)和中斷技術(shù),來實現(xiàn)按下數(shù)字1,小鳥飛過,按2,汽車開過,按3,退出程序,同時對匯編語言的基本原理解析。本程序可在windows2000,windowsxp上運(yùn)行。所需要的工具軟件為MASM2.0及以上版本,先生成.asm文件,再生
2、成.exe的文件,然后運(yùn)行。關(guān)鍵詞:汽車小鳥動畫,masm軟件,中斷技術(shù),堆棧,子程序調(diào)用一、汽車小鳥動畫的基本原理此程序主要是利用BIOS功能調(diào)用的10H中斷類型實現(xiàn)的。先利用其功能設(shè)置顯示方式為320*200彩色圖形方式,由于程序中沒有做好的汽車小鳥圖形,需要先編寫小鳥和汽車的字符圖形的子程序,采用段內(nèi)調(diào)用子程序的方法來實現(xiàn),使用了堆棧技術(shù)。設(shè)計兩個畫面,按1,小鳥飛過,按2,汽車開過,按3,退出程序。二、設(shè)計方案根據(jù)基本原理設(shè)計思路擬定出設(shè)計方案。先編寫好小鳥和汽車的圖形顯示的子程序,以供之后段內(nèi)
3、調(diào)用子程序。之后再編寫小鳥飛過的子程序和汽車開過的子程序,利用轉(zhuǎn)移指令,調(diào)用子程序以及中斷程序和堆棧等功能來實現(xiàn)設(shè)計的功能。三、軟件設(shè)計3.1汽車小鳥動畫總體結(jié)構(gòu)圖程序流程圖如下圖所示開始設(shè)計為320*200彩色圖形清屏從鍵盤讀取字符1或2或3提示語設(shè)計背景色設(shè)置彩色組結(jié)束設(shè)置光標(biāo)位置顯示小鳥字符圖形延時設(shè)置彩色顏色為綠紅黃設(shè)置汽車開始顯示位顯示汽車字符圖形出屏延時出屏3213.2編寫汽車小鳥圖形的子程序BIRD??DB76H,10,0,0?????????????;小鳥的字符圖形表??????DB0C
4、4H,07,0,1??????DB76H,10,-2,2??????DB0C4H,07,0,1??????DB76H,10,-2,2??????DB0C4H,07,0,1??????DB76H,10,-2,2??????DB0C4H,07,0,1??????DB76H,10,2,-2??????DB0C4H,07,0,1??????DB76H,10,2,-2??????DB0C4H,07,0,1??????DB76H,10,2,-2??????DB0C4H,07,0,1CAR???DB7????????
5、??????????;汽車的字符圖形表??????DB52H,7,0,0??????DB0B1H,7,0,1??????DB0DBH,7,0,1??????DB0DBH,7,0,1??????DB4FH,7,1,0??????DB4FH,7,0,-3??????DB2,7,-2,13.3編寫小鳥飛過和汽車開過的子程序(1)小鳥飛過的子程序:DISP:?CMPDL,80??????JAEexit1??????MOVAH,2??????????????;設(shè)置光標(biāo)位置??????INT10H??????MOV
6、AH,9??????????????;顯示小鳥字符圖形??????MOVAL,[DI]??????MOVBL,[DI+1]??????INT10H??????CALLDLY??????????????;延時??????MOVAH,9??????MOVAL,''??????MOVBL,04??????INT10H??????INCDL??????ADDDI,2??????DECSI??????JNZDISP??????JMPBEGINexit1:RET(2)汽車開過的子程序QICHE?PROCnear??
7、???????????;汽車子程序??????PUSHAX??????PUSHBX??????PUSHCX??????PUSHDX??????????MOVAH,0??????MOVAL,4??????INT10H??????MOVAH,0BH???????????;設(shè)置彩色組顏色為綠、紅、黃??????MOVBH,01??????MOVBL,00??????INT10H??????CLEAR0,0,24,79,7????;清屏宏調(diào)用??????LEADI,CAR???????????;DI指向字符圖形
8、表??????MOVDH,5?????????????;從第5行5列位置開始顯示汽車??????MOVDL,0??????CALLMOVE_SHAPE??????RET3.4汽車小鳥動畫程序?運(yùn)行可執(zhí)行程序CAR.exe,選擇1,小鳥飛過;選擇2,汽車開過;選擇3,退出。DATA??SEGMENTINFO1?DB0DH,0AH,'INPUT1,2,OR3:(1:bird,2:car,3:exit)$'BUFA??DB200??????DB?