版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 學(xué)生課程設(shè)計(jì)(論文)</p><p> 題 目: 動(dòng)畫“心”程序 </p><p> 學(xué)生姓名: 學(xué) 號: </p><p> 所在院(系): 計(jì)算機(jī)學(xué)院 </p><p> 專 業(yè):
2、 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 班 級: 10級計(jì)本一班 </p><p> 指 導(dǎo) 教 師: 職稱: 講師 </p><p> 2012年 1 月5日</p><p> 本科學(xué)生課程設(shè)計(jì)任務(wù)書</p><p><b
3、> 摘要</b></p><p> 根據(jù)匯編設(shè)計(jì)任務(wù):闡述動(dòng)畫心匯編程序的設(shè)計(jì)基本思想與方案,在一套PC機(jī)子上實(shí)現(xiàn)動(dòng)畫心的程序,繪制程序相應(yīng)的設(shè)計(jì)流程圖,運(yùn)用8086CPU提供的指令、偽指令、宏指令及DOS,BIOS功能調(diào)用編寫程序源代碼,同時(shí)在重要的部分要給出相應(yīng)的說明注釋。利用計(jì)算機(jī)提供的相關(guān)軟件調(diào)試工具對所編寫會(huì)匯編程序進(jìn)行調(diào)試運(yùn)行,記錄下整個(gè)編寫設(shè)計(jì)調(diào)試分析的過程與運(yùn)行結(jié)果。<
4、/p><p> 關(guān)鍵詞:匯編語言、動(dòng)畫心、方案、程序原代碼、調(diào)試。</p><p><b> Abstract</b></p><p> According to compile the design task: animated heart assembler described the basic idea of ??the design
5、 and program a PC in the heart of the machine to achieve the animation process, the corresponding flow chart drawing program, the use of 8086CPU provide instructions, directives, macros, and DOS , BIOS function calls to
6、program source code, while an important part to give the corresponding explanatory comment. The use of computers and related software debugging tools will be written to run debu</p><p> Keywords: assembly l
7、anguage, animated heart, programs, program source code, debugging.</p><p><b> 目錄</b></p><p><b> 摘要4</b></p><p> Abstract5</p><p> 1、設(shè)計(jì)任務(wù)及要
8、求8</p><p> 2、程序設(shè)計(jì)基本思想9</p><p> 2、1本程序設(shè)計(jì)基本思路9</p><p> 2、2匯編程序設(shè)計(jì)過程9</p><p> 3、設(shè)計(jì)方案及程序流程圖11</p><p><b> 3.1方案11</b></p><p>
9、<b> 3.2擴(kuò)展11</b></p><p> 3.3動(dòng)畫心程序流程圖11</p><p> 4、程序源代碼與運(yùn)行結(jié)果13</p><p> 4.1程序源代碼13</p><p> 4.2程序運(yùn)行結(jié)果18</p><p> 4.3調(diào)試記錄與分析19</p>
10、<p><b> 5、總結(jié)22</b></p><p><b> 6、參考文獻(xiàn)23</b></p><p><b> 7、附錄24</b></p><p><b> 1、設(shè)計(jì)任務(wù)及要求</b></p><p> 本次課程設(shè)計(jì)要求
11、是編寫一個(gè)完整的程序以實(shí)現(xiàn)一個(gè)小動(dòng)畫。該動(dòng)畫要求先顯示一些提示信息,然后按任意鍵進(jìn)入,只見一個(gè)方框向中間由大變小,并留下痕跡,然后出現(xiàn)一個(gè)心,按空格重復(fù)出現(xiàn)心,按其他鍵將重復(fù),按Q鍵退出程序。一個(gè)顏色方框從四周向中間由大變小,中心位置出現(xiàn)一顆紅“心”。</p><p> 設(shè)計(jì)要求即為:1)按任意鍵進(jìn)入圖形顯示;</p><p> 2)按空格鍵重復(fù)出現(xiàn)“心”;</p>&l
12、t;p> 3)按回車鍵將重復(fù)整個(gè)圖形;</p><p> 4)按Q鍵退出程序。</p><p> 2、程序設(shè)計(jì)基本思想</p><p> 2、1本程序設(shè)計(jì)基本思路</p><p> 本程序主要是利用BIOS功能調(diào)用的10H中斷類型實(shí)現(xiàn)的。利用其12號功能,設(shè)置像素點(diǎn)的顏色、坐標(biāo)和個(gè)數(shù),從而畫出圖形需要的線段,如畫方框、畫斜線、
13、畫水平垂直線,以及采用行、列坐標(biāo)連續(xù)寫像素的方法填充圖形等。畫完圖形之后延時(shí),清屏。同時(shí),利用dos功能調(diào)用的08號功能,從鍵盤輸入字符。如果是任意鍵,則進(jìn)入圖形顯示;如果是回車鍵,則重新顯示這個(gè)圖形;如果是空格鍵,則改變“心”的大??;如果是“q”鍵,則退出。</p><p> 2、2匯編程序設(shè)計(jì)過程</p><p> 本次匯編語言程序設(shè)計(jì)要求綜合以前所學(xué)知識(shí),根據(jù)設(shè)計(jì)具體要求分析問題
14、,將問題分解成一個(gè)一個(gè)的步驟,每步用匯編語言中的指令性語句,按先后順序表達(dá),設(shè)計(jì)一個(gè)不僅要滿足要求,能正常運(yùn)行,實(shí)現(xiàn)指定功能的程序;還應(yīng)滿足結(jié)構(gòu)化、簡明、易讀、易調(diào)試、易維護(hù)、執(zhí)行速度快、占用存儲(chǔ)空間盡量少的好程序。</p><p> 設(shè)計(jì)總過程流程圖如下圖1所示:</p><p> 3、設(shè)計(jì)方案及程序流程圖</p><p><b> 3.1方案&l
15、t;/b></p><p> 由基本設(shè)計(jì)思路擬訂出原方案。先分別編寫畫方框、畫對角線、畫水平垂直線,畫斜線,畫心型;以及清屏、清除心型、延時(shí)和顯示文本信息的子程序。然后,通過編寫主程序調(diào)用這些子程序來實(shí)現(xiàn)設(shè)計(jì)的要求。</p><p><b> 3.2擴(kuò)展</b></p><p> 通過改變BIOS功能調(diào)用的10H中斷類型的11號功能
16、(BL)的賦值來改變圖形與線條以及背景的顏色。</p><p> 將原設(shè)計(jì)任務(wù)要求的方框由大變小改成方框由小變大。同時(shí),也可改變方框變化劃過的軌跡變化,使其不在是從大框一直到小框,而是從小框到大框;使改變后的方框變化看上去是移動(dòng)的不斷從小到大變化。</p><p> 為了使運(yùn)行的動(dòng)畫人眼看上去是連續(xù)移動(dòng)的,我們可以根據(jù)人眼的反應(yīng)時(shí)間來設(shè)置延時(shí)程序。通過計(jì)算得出延時(shí)程序所需的循環(huán)的次數(shù),
17、以達(dá)到以上目的。計(jì)算式為:(人眼的反應(yīng)時(shí)間:響應(yīng)時(shí)間如果超過40毫秒,人眼就會(huì)出現(xiàn)運(yùn)動(dòng)圖像的遲滯現(xiàn)象。)</p><p> 以上擴(kuò)展方案會(huì)在程序源代碼中具體說明。</p><p> 3.3動(dòng)畫心程序流程圖</p><p> 由設(shè)計(jì)方案畫出動(dòng)畫心程序流程圖如圖2所示:</p><p><b> 流程圖簡單說明:</b&g
18、t;</p><p> 4、程序源代碼與運(yùn)行結(jié)果</p><p><b> 4.1程序源代碼</b></p><p> 根據(jù)程序設(shè)計(jì)基本思路與方案,由于小組的分工合作,在此主要負(fù)責(zé)編寫主程序源代碼。</p><p><b> 主程序:</b></p><p> da
19、ta segment</p><p> buff1 db ' Welcome you to run this program!'</p><p> db ' '</p><p> db ' *****
20、Please press any key *****$'</p><p> buff2 db ' My heart beats with yours!'</p><p> db ' ***** Please press q to quit *****$'</p><p
21、><b> data ends</b></p><p> stack segment stack ;定義堆棧段</p><p> stack ends</p><p> code segment</p><p> main proc far</p><p> ass
22、ume cs:code,ds:data</p><p><b> start:</b></p><p><b> push ds</b></p><p><b> sub ax,ax</b></p><p><b> push ax</b><
23、/p><p> mov ax,data</p><p><b> mov ds,ax</b></p><p> mov ah,00 ;設(shè)置顯示方式為320*200彩色圖形方式</p><p><b> mov al,04</b></p><p><b>
24、 int 10h</b></p><p> mov ah,0bh ;利用BIOS調(diào)用的10H中斷類型11號功能設(shè)定背景色</p><p><b> mov bh,00</b></p><p> mov bl,1 ;通過(bl)的賦值0-15設(shè)定顏色,此為藍(lán)色</p><p><b>
25、 int 10h</b></p><p> mov ah,0bh ;設(shè)置彩色組</p><p><b> mov bh,1</b></p><p> mov bl,2 </p><p><b> int 10h</b></p><p> m
26、ov dx,offset buff1 ;顯示提示信息,即buff1的字符串內(nèi)容 </p><p><b> mov ah,09</b></p><p><b> int 21h</b></p><p> mov ah,08 ;從鍵盤輸入1個(gè)字符,但不送顯示器顯示</p>&l
27、t;p><b> int 21h</b></p><p> call clear ;調(diào)用清屏子程序 </p><p> sss: call text ;顯示文本信息 </p><p> mov di,2
28、 ;開始畫大方框</p><p> mov al,1 </p><p> mov cx,70 ;顯示點(diǎn)所在列號</p><p> mov dx,20 ;顯示點(diǎn)所在行號</p><p> mov bx,160 ;確定方框大小</
29、p><p> call box ;調(diào)用畫方框子程序</p><p> mov cx,71 ;畫方框移動(dòng)軌跡,使方框變化看上去是移動(dòng)的</p><p> mov dx,21 </p><p> mov bx,158</p><p> again: mov al,1
30、 ;由大到小畫軌跡方框</p><p><b> mov di,0</b></p><p><b> call box</b></p><p> call delay</p><p><b> mov al,0</b></p><
31、p><b> mov di,0</b></p><p><b> call box</b></p><p> inc cx ;每次軌跡圖的行號和列號是自加1,軌跡圖是由大變小</p><p><b> inc dx</b></p><p> sub bx
32、,2 ;設(shè)定每次軌跡圖大小減小的程度</p><p> cmp cx,94 ;當(dāng)軌跡方框大小與下一個(gè)方框相等時(shí),退出畫軌跡</p><p><b> jnz again</b></p><p> mov di,0 ;畫第二個(gè)方框,具體畫法與畫大方框相同</p><p>&
33、lt;b> mov cx,95</b></p><p><b> mov dx,45</b></p><p><b> mov al,1</b></p><p> mov bx,110 ;第二個(gè)方框較第一個(gè)方框較小</p><p><b> cal
34、l box</b></p><p><b> mov cx,96</b></p><p><b> mov dx,46</b></p><p> mov bx,108</p><p> again_00: mov al,1</p><p><b>
35、; mov di,0</b></p><p><b> call box</b></p><p> call delay</p><p> call delay</p><p><b> mov al,0</b></p><p><b> m
36、ov di,0</b></p><p><b> call box</b></p><p><b> inc cx</b></p><p><b> inc dx</b></p><p><b> sub bx,2</b></p&
37、gt;<p> cmp cx,114</p><p> jnz again_00</p><p> mov cx,115 ;畫第三個(gè)方框 </p><p><b> mov dx,65</b></p><p><b> m
38、ov al,1</b></p><p> mov bx,70 ;第三個(gè)方框較前兩個(gè)小</p><p><b> call box</b></p><p> mov cx,116</p><p><b> mov dx,66</b></p>
39、;<p><b> mov bx,68</b></p><p><b> again_01:</b></p><p><b> mov al,1</b></p><p><b> mov di,0</b></p><p><b&
40、gt; call box</b></p><p> call delay</p><p> call delay</p><p><b> mov al,0</b></p><p><b> mov di,0</b></p><p><b>
41、 call box</b></p><p><b> inc cx</b></p><p><b> inc dx</b></p><p><b> sub bx,2</b></p><p> cmp cx,129</p><p>
42、 jnz again_01</p><p> mov di,2 ;畫最小的方框,此時(shí)不需要畫軌跡圖</p><p> mov al,1 </p><p> mov cx,130</p><p><b> mov dx,80</b>
43、</p><p><b> mov bx,40</b></p><p><b> call box</b></p><p> mov di,2 ;畫對角線</p><p> mov al,3 </p>
44、<p><b> mov si,0</b></p><p> mov cx,71 ;確定點(diǎn)所在列號</p><p> mov dx,21 ;確定點(diǎn)所在行號</p><p> mov bx,59 ;設(shè)置對角線長度</p><
45、;p> call xie_line ;調(diào)用畫對角線子程序</p><p> mov cx,171</p><p> mov dx,121</p><p><b> mov bx,59</b></p><p> call xie_line</p><p>&
46、lt;b> mov si,1</b></p><p><b> mov cx,71</b></p><p> mov dx,179</p><p><b> mov bx,59</b></p><p> call xie_line</p><p>
47、 mov cx,171</p><p><b> mov dx,79</b></p><p><b> mov bx,59</b></p><p> call xie_line</p><p> mov cx,150 ;畫十字線,確定點(diǎn)所在列號</p>
48、;<p> mov dx,20 ;確定點(diǎn)所在行號</p><p><b> mov si,0</b></p><p> mov bx,60 ;確定十字線長度</p><p> call draw_line ;調(diào)用畫線子程序</p>
49、;<p> mov cx,150</p><p> mov dx,120</p><p><b> mov bx,60</b></p><p> call draw_line</p><p><b> mov cx,70</b></p><p> m
50、ov dx,100</p><p><b> mov si,1</b></p><p><b> mov bx,60</b></p><p> call draw_line</p><p> mov cx,170</p><p> mov dx,100</p&
51、gt;<p><b> mov bx,60</b></p><p> call draw_line</p><p> mov cx,149 </p><p> mov dx,120</p><p><b> mov al,2</b>
52、</p><p><b> mov bx,60</b></p><p><b> mov si,0</b></p><p> call draw_line</p><p> mov si,1 ;畫斜線</p><p>
53、<b> mov cx,70</b></p><p><b> mov dx,60</b></p><p><b> mov bx,60</b></p><p> call mid_line ;調(diào)用畫斜線子程序</p><p>
54、 mov cx,170 ;確定顯示點(diǎn)所在列號</p><p> mov dx,110 ;確定顯示點(diǎn)所在行號</p><p> mov bx,60 ;設(shè)置斜線長度</p><p> call mid_line</p&g
55、t;<p><b> mov si,2</b></p><p> mov cx,110</p><p><b> mov dx,20</b></p><p><b> mov bx,30</b></p><p> call mid_line</p&
56、gt;<p> mov cx,160</p><p> mov dx,120</p><p><b> mov bx,30</b></p><p> call mid_line</p><p><b> mov si,3</b></p><p><
57、;b> mov cx,70</b></p><p> mov dx,140</p><p><b> mov bx,60</b></p><p> call mid_line</p><p> mov cx,170</p><p><b> mov dx,9
58、0</b></p><p><b> mov bx,60</b></p><p> call mid_line</p><p><b> mov si,4</b></p><p> mov cx,110</p><p> mov dx,180</p
59、><p><b> mov bx,30</b></p><p> call mid_line</p><p> mov cx,160</p><p><b> mov dx,80</b></p><p><b> mov bx,30</b><
60、/p><p> call mid_line</p><p> mov cx,149</p><p> mov dx,120</p><p><b> mov al,2</b></p><p><b> mov bx,60</b></p><p>
61、<b> mov si,0</b></p><p> call draw_line</p><p> heart_: ;畫心 </p><p> call cls_box ;清除最小方框內(nèi)的內(nèi)容/清除心</p><p> call he
62、art ;調(diào)用畫心子程序</p><p> mov ah,08 ;從鍵盤輸入一個(gè)字符,但不送顯示器顯示</p><p><b> int 21h</b></p><p> cmp al,'q' ;(al)=’q’時(shí),執(zhí)行ok的內(nèi)容,即退出<
63、;/p><p><b> jz ok</b></p><p> cmp al,20h ;(al)=空格時(shí),轉(zhuǎn)去執(zhí)行heart_的內(nèi)容,即清除心并重新畫心</p><p><b> jz heart_</b></p><p> call clear ;(al)=其他
64、鍵,則調(diào)用清屏子程序清屏</p><p> jmp sss ;清屏后轉(zhuǎn)去執(zhí)行sss的內(nèi)容,即動(dòng)畫重復(fù)</p><p> ok: ;退出分支程序</p><p><b> ret</b></p><p> main endp
65、 ;主程序結(jié)束</p><p><b> code ends</b></p><p><b> 4.2程序運(yùn)行結(jié)果</b></p><p> 結(jié)論:原程序:動(dòng)畫“心”畫圖程序運(yùn)行結(jié)果如下列圖所示:</p><p> 圖3 運(yùn)行結(jié)果圖——顯示提示信息</p><p&g
66、t; 圖4運(yùn)行結(jié)果圖——步驟一</p><p> 圖5運(yùn)行結(jié)果圖——步驟二</p><p> 圖6 運(yùn)行結(jié)果圖——完整動(dòng)畫心圖</p><p> 4.3調(diào)試記錄與分析</p><p><b> 原程序調(diào)試過程:</b></p><p> 根據(jù)設(shè)計(jì)原理先分別編寫出畫方框、畫對角線、畫水平
67、垂直線,畫斜線,畫心型;以及清屏、清除心型、延時(shí)和顯示文本信息的子程序;然后通過主程序調(diào)用每個(gè)子程序編寫成可實(shí)現(xiàn)設(shè)計(jì)要求的完整程序。</p><p> 先將程序轉(zhuǎn)換成目標(biāo)文件,系統(tǒng)沒發(fā)現(xiàn)語法錯(cuò)誤。轉(zhuǎn)換成目標(biāo)文件屏幕截圖如下圖11所示:</p><p> 圖11轉(zhuǎn)換成目標(biāo)文件截圖</p><p> 將目標(biāo)文件生連接生成可執(zhí)行文件后,命令提示符顯示“ There
68、was 1 error detected.”系統(tǒng)發(fā)現(xiàn)存在一個(gè)錯(cuò)誤,并提示“Warning:No STACK segment.”</p><p> 沒有定義堆棧段,程序可以不定義堆棧段,該錯(cuò)誤可以忽略。生成可執(zhí)行文件的屏幕截圖如下圖12所示:</p><p> 圖12 生成可執(zhí)行文件截圖</p><p> 但為了不存在錯(cuò)誤,我們在程序中定義一段堆棧段</p
69、><p> stack segment stack</p><p> stack ends</p><p> 定義堆棧段后錯(cuò)誤消失了,如下圖13所示:</p><p> 圖13 加入堆棧段后生成可執(zhí)行文件截圖</p><p><b> 5、總結(jié)</b></p><p&g
70、t; 為期一周的匯編語言課程設(shè)計(jì)實(shí)驗(yàn)課,通過自己輸入?yún)R編語言的代碼上機(jī)實(shí)驗(yàn)調(diào)試,翻書查閱相關(guān)資料(包括教材),也學(xué)同學(xué)相互討論、交流、商議等。整個(gè)匯編語言課程設(shè)計(jì)使得我對匯編語言這門課程有了進(jìn)一步的認(rèn)識(shí),提高了自己的閱讀代碼能力,雖然本次的課程設(shè)計(jì)的代碼是比較現(xiàn)呈的,但設(shè)計(jì)本事是綜合度較高,沒有涉及硬件,實(shí)施起來還是有很大的難度。在課后與平時(shí)的學(xué)習(xí)中,我們學(xué)習(xí)與接觸的匯編知識(shí)很少很少,更不用去說是去用匯編語言來寫程序?qū)嵺`。而我自己所選
71、擇的課程項(xiàng)目基本上要用到微機(jī)原理的所有知識(shí)。在實(shí)踐的過程中,還是遇到了不少的問題難題,但是在老師、書籍和同學(xué)們的幫助下,解決了這些問題中的大部分,最終才能基本正常的運(yùn)行處我想要的結(jié)果。通過此次對“動(dòng)畫心”程序編程,我對匯編語言及微機(jī)原理有了更明確的更深的認(rèn)識(shí),但是也讓我在做課程設(shè)計(jì)的同時(shí)重溫并鞏固了匯編預(yù)言的基礎(chǔ)知識(shí),真正的做到了學(xué)以致用。總之,此次課程設(shè)計(jì)實(shí)驗(yàn)的收獲不小,但是其安排不太合理,影響了其他科的學(xué)習(xí)。</p>
72、<p><b> 6、參考文獻(xiàn)</b></p><p> [1] 吳向軍、羅源明、劉廣旋,《匯編語言程序設(shè)計(jì)》,高等教育出版社,2009.11 第二版</p><p> [2] 李珍香、劉紅梅、趙潤海,《匯編語言課程設(shè)計(jì)案例精編》.北京:中國水利水電出版社,2004.3</p><p> [3] 于春凡、朱耀庭,《宏匯編語言程
73、序設(shè)計(jì)》.天津:南開大學(xué)出版社,1996.6第一版</p><p> [4] 馬瑞芳,《匯編語言程序設(shè)計(jì)》.西安:西北工業(yè)大學(xué)出版社,2002.3第一版</p><p> [5] 吳向軍、羅源明、劉廣旋,《匯編語言程序設(shè)計(jì)》,高等教育出版社,2009.11 第二版</p><p> [6]《匯編語言程序設(shè)計(jì)》,吳向軍等,高等教育出版社,2002</p&
74、gt;<p> [7]《IBM-PC匯編語言及程序設(shè)計(jì)》(第2版), 沈美明等,清華大學(xué)出版社,2001</p><p> [8]《IBM-PC匯編語言及程序設(shè)計(jì)實(shí)驗(yàn)教程》,沈美明等,清華大學(xué)出版社 ,2001</p><p> [9]《匯編語言程序設(shè)計(jì)》, 錢曉捷等,電子工業(yè)出版社,2000</p><p> [10]《匯編語言程序設(shè)計(jì)》,
75、張志明等,重慶大學(xué)出版社,1997</p><p><b> 7、附錄</b></p><p><b> 完整程序源代碼:</b></p><p> data segment</p><p> buff1 db ' Welcome you to run this </p&g
76、t;<p> code segment</p><p> main proc far</p><p> assume cs:code,ds:data</p><p><b> start:</b></p><p><b> push ds</b></p><
77、;p><b> sub ax,ax</b></p><p><b> push ax</b></p><p> mov ax,data</p><p><b> mov ds,ax</b></p><p> mov ah,00 &l
78、t;/p><p> programe!'</p><p> db ' '</p><p> db ' *****Please press any key*****$'</p><
79、;p> buff2 db ' My heart beats with yours!'</p><p> db ' ***** Please q to quit *****$'</p><p><b> data ends</b></p><p>
80、 ?。辉O(shè)置顯示方式為320*200彩色圖形方式</p><p><b> mov al,04</b></p><p><b> int 10h</b></p><p> mov ah,0bh </p><p><b> ??;設(shè)置彩色組</b>&
81、lt;/p><p><b> mov bh,00</b></p><p><b> mov bl,1</b></p><p><b> int 10h</b></p><p> mov ah,0bh</p><p><b> mov bh
82、,1</b></p><p><b> mov bl,2</b></p><p><b> int 10h</b></p><p> mov dx,offset buff1 </p><p><b> ??;顯示提示信息</b></
83、p><p><b> mov ah,09</b></p><p><b> int 21h</b></p><p><b> mov ah,08</b></p><p><b> int 21h</b></p><p> ca
84、ll clear </p><p><b> ;清屏</b></p><p><b> sss:</b></p><p> call text </p><p><b> ;顯示文本</b&
85、gt;</p><p><b> mov di,2</b></p><p> mov al,1 </p><p><b> ?。划嫶蠓娇?lt;/b></p><p><b> mov cx,70</b></p><
86、p><b> mov dx,20</b></p><p> mov bx,160</p><p><b> call box</b></p><p> mov cx,71 </p><p><b> mov dx,21</b></p><p&
87、gt; mov bx,158</p><p><b> again:</b></p><p><b> mov al,1</b></p><p><b> mov di,0</b></p><p><b> call box</b></p&
88、gt;<p> call delay</p><p><b> mov al,0</b></p><p><b> mov di,0</b></p><p><b> call box</b></p><p><b> inc cx</b
89、></p><p><b> inc dx</b></p><p><b> sub bx,2</b></p><p><b> cmp cx,94</b></p><p><b> jnz again</b></p><
90、p> mov di,0 </p><p><b> ??;畫第二個(gè)方框</b></p><p><b> mov cx,95</b></p><p><b> mov dx,45</b></p><p><b> mov al,1</b>&
91、lt;/p><p> mov bx,110</p><p><b> call box</b></p><p><b> mov cx,96</b></p><p><b> mov dx,46</b></p><p> mov bx,108<
92、;/p><p><b> again_00:</b></p><p><b> mov al,1</b></p><p><b> mov di,0</b></p><p><b> call box</b></p><p>
93、 call delay</p><p> call delay</p><p><b> mov al,0</b></p><p><b> mov di,0</b></p><p><b> call box</b></p><p><b
94、> inc cx</b></p><p><b> inc dx</b></p><p><b> sub bx,2</b></p><p> cmp cx,114</p><p> jnz again_00</p><p> mov cx,11
95、5 </p><p><b> ;畫第三個(gè)方框</b></p><p><b> mov dx,65</b></p><p><b> mov al,1</b></p><p><b> mov bx,70<
96、/b></p><p><b> call box</b></p><p> mov cx,116</p><p><b> mov dx,66</b></p><p><b> mov bx,68</b></p><p><b>
97、; again_01:</b></p><p><b> mov al,1</b></p><p><b> mov di,0</b></p><p><b> call box</b></p><p> call delay</p><
98、;p> call delay</p><p><b> mov al,0</b></p><p><b> mov di,0</b></p><p><b> call box</b></p><p><b> inc cx</b><
99、/p><p><b> inc dx</b></p><p><b> sub bx,2</b></p><p> cmp cx,129</p><p> jnz again_01</p><p><b> mov di,2</b></p&g
100、t;<p> mov al,1 </p><p><b> ??;畫小方框</b></p><p> mov cx,130</p><p><b> mov dx,80</b></p><p><b> mov bx,40</b></
101、p><p><b> call box</b></p><p><b> mov di,2</b></p><p> mov al,3 </p><p><b> ??;畫對角線</b></p><p&g
102、t;<b> mov si,0</b></p><p><b> mov cx,71</b></p><p><b> mov dx,21</b></p><p><b> mov bx,59</b></p><p> call xie_line
103、</p><p> mov cx,171</p><p> mov dx,121</p><p><b> mov bx,59</b></p><p> call xie_line</p><p><b> mov si,1</b></p><p
104、><b> mov cx,71</b></p><p> mov dx,179</p><p><b> mov bx,59</b></p><p> call xie_line</p><p> mov cx,171</p><p><b> m
105、ov dx,79</b></p><p><b> mov bx,59</b></p><p> call xie_line</p><p> mov cx,150 </p><p><b> ;畫十字線</b></p&
106、gt;<p><b> mov dx,20</b></p><p><b> mov si,0</b></p><p><b> mov bx,60</b></p><p> call draw_line</p><p> mov cx,150</
107、p><p> mov dx,120</p><p><b> mov bx,60</b></p><p> call draw_line</p><p><b> mov cx,70</b></p><p> mov dx,100</p><p>
108、;<b> mov si,1</b></p><p><b> mov bx,60</b></p><p> call draw_line</p><p> mov cx,170</p><p> mov dx,100</p><p><b> mov
109、bx,60</b></p><p> call draw_line</p><p> mov si,1 </p><p><b> ;畫斜線</b></p><p><b> mov cx,70</b></p&g
110、t;<p><b> mov dx,60</b></p><p> mov bx,60 </p><p> call mid_line </p><p> mov cx,170</p><p> mov dx,110</p><p><b> mov
111、bx,60</b></p><p> call mid_line</p><p><b> mov si,2</b></p><p> mov cx,110</p><p><b> mov dx,20</b></p><p><b> mov
112、 bx,30</b></p><p> call mid_line</p><p> mov cx,160</p><p> mov dx,120</p><p><b> mov bx,30</b></p><p> call mid_line</p><
113、;p><b> mov si,3</b></p><p><b> mov cx,70</b></p><p> mov dx,140</p><p><b> mov bx,60</b></p><p> call mid_line</p>&l
114、t;p> mov cx,170</p><p><b> mov dx,90</b></p><p><b> mov bx,60</b></p><p> call mid_line</p><p><b> mov si,4</b></p>&
115、lt;p> mov cx,110</p><p> mov dx,180</p><p><b> mov bx,30</b></p><p> call mid_line</p><p> mov cx,160</p><p><b> mov dx,80</b
116、></p><p><b> mov bx,30</b></p><p> call mid_line</p><p> mov cx,149 </p><p><b> ?。籦old</b></p><p
117、> mov dx,120</p><p><b> mov al,2</b></p><p><b> mov bx,60</b></p><p><b> mov si,0</b></p><p> call draw_line</p><
118、p> mov cx,151</p><p> mov dx,120</p><p><b> mov al,2</b></p><p><b> mov bx,60</b></p><p><b> mov si,0</b></p><p&g
119、t; call draw_line</p><p> heart_: </p><p><b> ;畫心</b></p><p> call cls_box</p><p> call heart</p><p><b&
120、gt; mov ah,08</b></p><p><b> int 21h</b></p><p> cmp al,'q' </p><p> ?。?al)=’q’ 退出</p><p><b> jz ok</b>
121、;</p><p> cmp al,20h </p><p> ??;(al)=空格 重復(fù)出現(xiàn)心</p><p><b> jz heart_</b></p><p> call clear</p><p><b> jmp sss&
122、lt;/b></p><p><b> ok:</b></p><p><b> ret</b></p><p> main endp </p><p><b> ;主程序結(jié)束</b></p><
123、p> draw_Line proc near </p><p><b> ?。划嬀€子程序</b></p><p><b> push bx</b></p><p><b> cmp si,0</b></p><p> jz V_lin
124、e1</p><p><b> add bx,cx</b></p><p><b> H_line:</b></p><p> mov ah,0ch </p><p><b> ??;寫像素</b></p><
125、p><b> int 10h</b></p><p><b> cmp di,0</b></p><p><b> jz aa0</b></p><p><b> cmp di,1</b></p><p><b> jz aa1&
126、lt;/b></p><p> call delay</p><p><b> aa1:</b></p><p> call delay</p><p><b> aa0:</b></p><p><b> inc cx</b></
127、p><p><b> cmp cx,bx</b></p><p> jne H_line</p><p> jmp exit_line</p><p><b> V_line1:</b></p><p><b> add bx,dx</b><
128、/p><p><b> V_line:</b></p><p> mov ah,0ch</p><p><b> cmp di,0</b></p><p><b> jz bb0</b></p><p><b> cmp di,1<
129、/b></p><p><b> jz bb1</b></p><p> call delay</p><p><b> bb1:</b></p><p> call delay</p><p><b> bb0:</b></p&g
130、t;<p><b> int 10h</b></p><p><b> inc dx</b></p><p><b> cmp dx,bx</b></p><p> jne V_line</p><p> exit_line:</p>&l
131、t;p><b> pop bx</b></p><p><b> ret</b></p><p> draw_Line endp </p><p> xie_line proc near </p><p>&l
132、t;b> ??;畫對角線子程序</b></p><p><b> add bx,cx</b></p><p><b> cmp si,1</b></p><p> jz xieline_1</p><p> xieline_0:</p><p> m
133、ov ah,0ch</p><p><b> int 10h</b></p><p><b> inc dx</b></p><p><b> inc cx</b></p><p><b> cmp cx,bx</b></p><
134、;p> jne xieline_0</p><p> jmp exit_xie</p><p> xieline_1:</p><p> mov ah,0ch</p><p><b> int 10h</b></p><p><b> dec dx</b>&
135、lt;/p><p><b> inc cx</b></p><p><b> cmp cx,bx</b></p><p> jne xieline_1</p><p><b> exit_xie:</b></p><p><b> ret
136、</b></p><p> xie_line endp</p><p> Mid_line proc near ;畫斜線子程序</p><p><b> add bx,cx</b></p><p><b> cmp si,2</b></p><p>
137、 jz midline_2</p><p><b> cmp si,3</b></p><p> jz midline_3</p><p><b> cmp si,4</b></p><p> jz midline_4</p><p> midline_1: &l
138、t;/p><p> mov ah,0ch</p><p><b> int 10h</b></p><p><b> inc dx</b></p><p><b> add cx,2</b></p><p><b> cmp cx,bx&
139、lt;/b></p><p> jne midline_1</p><p> jmp exit_lines</p><p> midline_2:</p><p> mov ah,0ch</p><p><b> int 10h</b></p><p>&l
140、t;b> add dx,2</b></p><p><b> inc cx</b></p><p><b> cmp cx,bx</b></p><p> jne midline_2</p><p> jmp exit_lines</p><p>
141、 midline_3:</p><p> mov ah,0ch</p><p><b> int 10h</b></p><p><b> dec dx</b></p><p><b> add cx,2</b></p><p><b&g
142、t; cmp cx,bx</b></p><p> jne midline_3</p><p> jmp exit_lines</p><p> midline_4:</p><p> mov ah,0ch</p><p><b> int 10h</b></p>
143、;<p><b> sub dx,2</b></p><p><b> inc cx</b></p><p><b> cmp cx,bx</b></p><p> jne midline_4</p><p> exit_lines:</p>
144、<p><b> ret</b></p><p> mid_line endp</p><p> box proc near </p><p><b> ;畫方框子程序</b></p><p><b> push cx</
145、b></p><p><b> push dx</b></p><p><b> push cx</b></p><p><b> push dx</b></p><p><b> push cx</b></p><p&g
146、t;<b> push dx</b></p><p><b> push cx</b></p><p><b> push dx</b></p><p><b> mov si,1</b></p><p> call draw_line
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)原理課程設(shè)計(jì)---動(dòng)畫心匯編程序設(shè)計(jì)
- 小鳥動(dòng)畫程序課程設(shè)計(jì)
- 匯編語言動(dòng)畫設(shè)計(jì)課程設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)報(bào)告--小鳥動(dòng)畫程序
- 匯編語言程序設(shè)計(jì)-課程設(shè)計(jì)
- 匯編語言程序設(shè)計(jì)課程設(shè)計(jì)
- c語言課程設(shè)計(jì)---c語言小車動(dòng)畫程序
- 匯編語言課程設(shè)計(jì) 音樂點(diǎn)播程序
- 匯編語言課程設(shè)計(jì)--代碼轉(zhuǎn)換程序
- 匯編課程設(shè)計(jì)--音樂演奏程序設(shè)計(jì)
- 匯編課程設(shè)計(jì)---顯示系統(tǒng)日期時(shí)間程序設(shè)計(jì)
- 《匯編語言》課程設(shè)計(jì)報(bào)告--判斷閏年程序
- 匯編課程設(shè)計(jì)---顯示系統(tǒng)日期時(shí)間程序設(shè)計(jì)1
- 匯編課程設(shè)計(jì)---顯示系統(tǒng)日期時(shí)間程序設(shè)計(jì)1
- 《匯編語言》課程設(shè)計(jì)---用匯編語言進(jìn)行音樂動(dòng)畫功能的實(shí)現(xiàn)
- 課程設(shè)計(jì)--unix程序設(shè)計(jì)課程設(shè)計(jì)
- 鍵盤鋼琴匯編語言程序設(shè)計(jì)—微機(jī)原理課程設(shè)計(jì)
- 鍵盤鋼琴匯編語言程序設(shè)計(jì)—微機(jī)原理課程設(shè)計(jì)
- 鍵盤鋼琴匯編語言程序設(shè)計(jì)—微機(jī)原理課程設(shè)計(jì)
- tracer程序課程設(shè)計(jì)
評論
0/150
提交評論