圖形和發(fā)聲程序課件_第1頁
圖形和發(fā)聲程序課件_第2頁
圖形和發(fā)聲程序課件_第3頁
圖形和發(fā)聲程序課件_第4頁
圖形和發(fā)聲程序課件_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第九章圖形和發(fā)聲程序10.1顯示方式10.2BIOS圖形顯示中斷10.3圖形方式下的文本顯示10.4動(dòng)畫顯示技術(shù)10.5發(fā)聲程序設(shè)計(jì)10.6

本章我們主要要掌握?qǐng)D形、動(dòng)畫、樂曲的匯編語言程序設(shè)計(jì)。圖形和發(fā)聲程序10.1顯示方式

ROMBIOS顯示例程支持多種文本方式和圖形方式,每種方式適合于特定適配器。在不同的顯示方式下,屏幕顯示的分辨率、顏色數(shù)和視頻顯示存儲(chǔ)器的組織方式都不同。10.1.1分辨率顯示分辨率包括字符分辨率和像素分辨率,分別表示顯示器在水平和垂直方向上所能顯示的字符數(shù)和像素?cái)?shù)。顯示分辨率和色彩決定了顯示器的顯示質(zhì)量,分辨率越高所顯示的字符和圖像就越清晰,但是需要更多的處理時(shí)間和更大的存儲(chǔ)空間,而速度和成本也是不容忽視的問題。圖形和發(fā)聲程序10.1顯示方式10.1.2BIOS設(shè)置顯示方式顯示方式分為兩類:文本方式和圖形方式。文本方式主要用于字符文本處理,圖形方式又稱為所有點(diǎn)可尋址方式。在圖形方式下,可通過讀寫屏幕上各個(gè)點(diǎn)的映像,顯示出單色或彩色圖形。

BIOS顯示中斷提供了設(shè)置各種文本和圖形顯示方式的功能,程序只要給出調(diào)用參數(shù),使用BIOSINT10H即可建立某種顯示方式。圖形和發(fā)聲程序0AL=0040*25文本16級(jí)灰度CGAMCGAEGAVGA=0380*25文本16色或8色CGAMCGAEGAVGA=04300*200圖形4色CGAMCGAEGAVGA=06640*200圖形黑白顯示CGAMCGAEGAVGA=0780*25文本黑白顯示MDAEGAVGA=0D320*200圖形16色EGAVGA=10640*350圖形4色或16色EGAVGA=12640*480圖形16色VGA=13320*200圖形256色MCGAVGAAH

調(diào)用參數(shù)顯示方式適合顯示器適配器BIOS設(shè)置顯示方式INT10H常用的顯示方式:圖形和發(fā)聲程序例:設(shè)置320*200圖形256色顯示方式。

MOVAH,00HMOVAL,13HINT10H

注意:在為未知的顯示器編寫程序時(shí),首先應(yīng)該判斷PC機(jī)配置的顯示適配器并選擇與之相適應(yīng)的最佳顯示方式。BIOSINT11H有確定系統(tǒng)配置的功能。這個(gè)操作實(shí)際上是把設(shè)備標(biāo)志的值回送給AX,其中4位和5位表示顯示器的配置及初始的顯示方式,如下圖所示:01=彩色適配板(40*25彩色)10=彩色適配板(80*25彩色)11=黑白適配板(80*25彩色)01234567圖形和發(fā)聲程序

設(shè)備標(biāo)志字提供的信息是相當(dāng)原始的,一般只能區(qū)分出是單色還是彩色顯示。另一種確定適配器的方法是調(diào)用BIOSINT10H。

?確定是否裝配VGA適配器。

MOVAH,1AHMOVAL,0INT10H;AL=1AH,有裝配VGA適配器,否則沒有。

相關(guān)代碼

運(yùn)行結(jié)果

?

確定是否裝配EGA適配器。

MOVAH,12HMOVBL,10HINT10H;BL=10H,有裝配EGA適配器,否則沒有。圖形和發(fā)聲程序10.2BIOS圖形顯示(INT10H)AH

功能調(diào)用參數(shù)返回參數(shù)0CH將一個(gè)點(diǎn)寫至像素位置AL=像素顏色,取決于顯示方式合適的視頻顯示方式下,BH=顯示頁號(hào)還可以指定顏色。DX=像素列,取決于顯示方式

CX=像素行,取決于顯示方式0DH讀取指定像素位置的顏色。BH=顯示頁號(hào)AL=顏色值

DX=像素列,取決于顯示方式

CX=像素行,取決于顯示方式例:從坐標(biāo)(50,0)到(50,320)畫一條直線。代碼

運(yùn)行效果例:畫一個(gè)高50,寬100的矩形。代碼

運(yùn)行效果例:讀取坐標(biāo)為(50,12)像素位置的顏色。代碼

debug9圖形和發(fā)聲程序10.3圖形方式下的文本顯示

大多數(shù)圖形程序都需要以某種形式顯示文本,最簡(jiǎn)單的一種方法是使用BIOS字符顯示功能。許多圖形程序還通過使用ASCII碼擴(kuò)展字符集中的圖形符號(hào)來組成大號(hào)的顯示字符。例如利用ASCII碼為0DBH,0DCH,0DDH,0DEH,0DFH等方塊來設(shè)計(jì)大號(hào)字母或文章中的方塊標(biāo)記。例:利用方塊符號(hào)來組成G字符,背景用品紅色,方塊符號(hào)用淺綠色。

代碼

運(yùn)行結(jié)果圖形和發(fā)聲程序10.4動(dòng)畫顯示技術(shù)

計(jì)算機(jī)動(dòng)畫是利用計(jì)算機(jī)圖形顯示技術(shù)來模仿物體活動(dòng)的效果,一般分為兩種類型:逐幀動(dòng)畫和實(shí)時(shí)動(dòng)畫。逐幀動(dòng)畫技術(shù)的最重要的用途是設(shè)計(jì)圖形系列以建立用不同介質(zhì)表現(xiàn)的動(dòng)畫圖象。例如,利用圖形系統(tǒng)來制作卡通電影的圖片,當(dāng)把這些圖片以適當(dāng)?shù)乃俣韧队皶r(shí),就會(huì)產(chǎn)生運(yùn)動(dòng)的影像。設(shè)計(jì)這種逐幀動(dòng)畫的圖片,對(duì)計(jì)算機(jī)系統(tǒng)的性能沒有嚴(yán)格的要求。對(duì)實(shí)時(shí)動(dòng)畫來說,因?yàn)橹苯釉诮K端上顯示動(dòng)畫程序執(zhí)行的結(jié)果,所以計(jì)算機(jī)系統(tǒng)的性能的優(yōu)劣直接影響動(dòng)畫生成的速度和圖象的質(zhì)量,此時(shí)計(jì)算機(jī)的性能就顯得非常重要了。屏幕物體的動(dòng)畫效果,經(jīng)常通過幾何變換來產(chǎn)生,最簡(jiǎn)單的幾何變換有平移、旋轉(zhuǎn)和比例變換,復(fù)雜的動(dòng)畫通過組合兩個(gè)或更多的變換來完成。在所有情況下,變換都是以一個(gè)新的圖象代替先前的圖象來實(shí)現(xiàn)。在動(dòng)畫軟件中,不僅要能畫出一系列連續(xù)的圖象,而且要能從屏幕上擦除先前的圖象,否則,運(yùn)動(dòng)的物體就會(huì)在屏幕上留下痕跡。擦除和重畫屏幕物體有幾種實(shí)現(xiàn)的方法,最直接的一種方法是在顯示圖形之前,把圖形將要占據(jù)的屏幕部分的背景圖象保存下來,當(dāng)要擦出圖形時(shí),再把保存的背景圖象重新顯示出來。另一種擦除屏幕圖象的方法是基于XOR操作的方法。

移動(dòng)案例演示代碼變形案例演示代碼圖形和發(fā)聲程序可編程時(shí)間間隔定時(shí)器8253/54CLK時(shí)鐘輸入端GATE門控信號(hào)輸入端OUT計(jì)數(shù)/定時(shí)輸入端控制寄存器(8位)端口號(hào)43H計(jì)數(shù)器0(16位)計(jì)數(shù)器1計(jì)數(shù)器2端口號(hào)40h端口號(hào)41h端口號(hào)42h其中CLK輸入頻率為1.1931817MHz(12348ChHZ)計(jì)數(shù)器0為系統(tǒng)日時(shí)鐘提供時(shí)基準(zhǔn)計(jì)數(shù)器1用作DRAM刷新的定時(shí)信號(hào)計(jì)數(shù)器2用來控制揚(yáng)聲器發(fā)聲10.5發(fā)聲程序設(shè)計(jì)計(jì)數(shù)初值格式操作模式讀寫指示選擇計(jì)數(shù)器控制寄存器(8位)端口號(hào)43H圖形和發(fā)聲程序例將計(jì)數(shù)器0設(shè)定為模式3,計(jì)數(shù)初值為4282(BCD)

MOVAL,00110111BOUT43H,ALMOVAX,4282HOUT40H,ALMOVAL,AHOUT40H,AL

計(jì)數(shù)器的輸出頻率=1.19318MHz/裝入計(jì)數(shù)器的計(jì)數(shù)初值。計(jì)數(shù)器0作為定時(shí)器為系統(tǒng)提供計(jì)時(shí)基準(zhǔn),計(jì)時(shí)器0的輸出端OUT與中斷控制器8259A的中斷請(qǐng)求端IRQ0相連,為IRQ0提供每秒18.2次的中斷信號(hào)。計(jì)數(shù)器1作為定時(shí)器使用,其輸出脈沖用作DRAM刷新的定時(shí)信號(hào)。DRAM要求每隔15цs刷新一次,這樣,OUT1的輸出脈沖的平率是66.2KHz。計(jì)數(shù)器2用來控制揚(yáng)聲器的發(fā)聲頻率。10.5發(fā)聲程序設(shè)計(jì)圖形和發(fā)聲程序例使計(jì)數(shù)器2在模式3下輸出頻率為330。

MOVDI,330

MOVAL,0B6HOUT43H,ALMOVDX,12HMOVAX,348CHDIVDIOUT42H,ALMOVAL,AHOUT42H,AL10.5發(fā)聲程序設(shè)計(jì)圖形和發(fā)聲程序CLK計(jì)數(shù)器28255可編程序外圍接口芯片GATE揚(yáng)聲器與15.08us觸發(fā)一次15.08us*33144/2=0.5s下一頁圖形和發(fā)聲程序例:寫一個(gè)發(fā)聲子程序,入口參數(shù)為發(fā)聲頻率和延長節(jié)拍。設(shè)入口參數(shù)發(fā)聲的頻率放在DI中,讓計(jì)數(shù)器3輸出頻率為DI中的值。moval,0b6hout43h,almovdx,12hmovax,348chdivdiout42h,almoval,ahout42h,al讓61端口產(chǎn)生一個(gè)脈沖,打開揚(yáng)聲器,脈沖的延長時(shí)間由入口參數(shù)BX決定。inal,61hmovah,aloral,3out61h,alwait1:movcx,5602delay:loopdelaydecbxjnzwait1moval,ahout61h,al寫一個(gè)WAITF子程序,延長的時(shí)間為15.08цs*CX的值,CX為入口參數(shù)waitfprocnearpushaxwaitf1:

inal,61handal,10hcmpal,ahjewaitf1movah,alloopwaitf1popaxretwaitfendp由循環(huán)次數(shù)決定發(fā)聲的延長時(shí)間的發(fā)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論