版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、匯編語言,數(shù)學(xué)科學(xué)學(xué)院計算機應(yīng)用技術(shù)專業(yè),修興強 00010111 下面創(chuàng)建紅色背景白色文字的屬性值: WHITE = 1111b RED = 100b mov bh,(RED SHL 4) OR WHITE;00010111,2007年11月,匯編語言,22,下面是在棕色背景上產(chǎn)生藍色字符: BLUE = 1 BROWN = 110b mov bh,(BROWN SHL 4) OR BLUE);00010111 在不同的操作系統(tǒng)下運行程序時字體和顏色會稍微有所不同。例如,在Windows 2000下閃爍是被禁止的,除非切換到全屏模式。,2007年11月,匯編語言,23,INT 10h視頻功能
2、,精選的INT 10h功能,在調(diào)用INT 10h之前保護通用寄存器(使用PUSH指令)是個好主意,因為不同版本的BIOS影響寄存器的方式并不相同。,2007年11月,匯編語言,24,INT 10h功能0(設(shè)置視頻模式) INT 10h功能0允許將當前視頻模式設(shè)置為文本或圖形模式,一些文本模式的編號列在下表中。,2007年11月,匯編語言,25,在設(shè)置新的視頻模式之前,最好首先獲?。ㄊ褂肐NT 10h功能0Fh)當前的視頻模式并將其保存在變量中,在程序退出時可以利用該值恢復(fù)原始的視頻模式。,2007年11月,匯編語言,26,INT 10h功能01h(設(shè)置光標起始行和結(jié)束行) INT 10h功能0
3、1h用來設(shè)置文本光標的大小。通過定義起始掃描行和結(jié)束掃描行可以控制文本光標的現(xiàn)實大小。應(yīng)用程序可以通過設(shè)置光標的大小以顯示當前操作的狀態(tài)。例如,文本編輯器可能會在NumLock鍵時增大光標,再次按下NumLock的時候,光標又恢復(fù)成原始大小。,2007年11月,匯編語言,27,光標可描述為一系列的水平線,其中第0線在最頂端。默認情況下光標從第6線開始,到第7線結(jié)束,如下圖所示。,2007年11月,匯編語言,28,INT 10h功能02h(設(shè)置光標位置) INT 10h功能02h在特定視頻頁的特定行列位置定位光標。,2007年11月,匯編語言,29,INT 10h功能03h(獲取光標位置和大?。?/p>
4、 INT 10h功能03h返回光標的行列位置以及決定光標大小的起始行和結(jié)束行。當用戶在菜單周圍移動鼠標的時候,這個功能是相當有用的。根據(jù)光標的位置,就可以知道哪個菜單項被選中了。,顯示和隱藏光標,2007年11月,匯編語言,30,INT 10h功能06h(上卷屏幕) INT 10h功能6上卷屏幕上矩形區(qū)域內(nèi)(稱為窗口)的所有文本,窗口是使用左上角和右下角的行列坐標來定義的。默認的MS-DOS屏幕從頂端開始計算有25行(024),從左邊開始計算有80列(079)。因此覆蓋整個屏幕的窗口從坐標(0,0)到坐標(24,79)。在下圖中,CH/CL寄存器定義在左上角的行列位置,DH/DL定義右下角的行
5、列位置。,CL,CH,DH,DL,2007年11月,匯編語言,31,窗口上卷時,底端的行由空行代替。如果所有的行都上卷了,那么窗口就被清空了(變?yōu)榭瞻祝?,上卷時移出窗口的行將不能被恢復(fù)。,下卷屏幕(07h) 除了窗口內(nèi)文本的移動方向是向下的以外,下卷屏幕與06h的功能基本相同,它們的輸入?yún)?shù)也是相同的。 例子:在窗口內(nèi)顯示文本(TextWin.asm)。,2007年11月,匯編語言,32,INT 10h功能08h(讀取字符及其屬性) INT 10h功能08h返回當前光標位置處的字符及其屬性。那些直接從屏幕讀取文本的程序一般使用該功能(稱為抓屏技術(shù))。掃描屏幕上的文本,并為聽力受損的用戶將文本轉(zhuǎn)
6、換成語音的程序可以使用這個功能。,2007年11月,匯編語言,33,INT 10h功能09h(顯示字符并設(shè)置其屬性) INT 10h功能09h在當前的光標位置顯示彩色字符。正如從下表中演示的那樣,這個功能可以顯示任何的ASCII字符,包括ASCII碼中從1-31的特殊IBM圖形字符。,CX中的重復(fù)次數(shù)決定重復(fù)顯示多少次字符(重復(fù)顯示時字符不應(yīng)當超出當前行的結(jié)尾)。在顯示完字符之后,如果還要繼續(xù)顯示字符,必須調(diào)用INT 10h功能02h前進光標。,2007年11月,匯編語言,34,INT 10h功能0Ah(顯示字符) INT 10h功能0Ah在當前光標位置顯示字符而不改變當前屏幕位置的屬性。該功
7、能除了不需指定屬性值之外,其他方面與功能09h是相同的。,2007年11月,匯編語言,35,INT 10h功能10h子功能03h(切換閃爍和亮度模式) INT 10h功能10h有許多有用的子功能,子功能03h允許將色彩屬性的最高位設(shè)置為控制色彩亮度或字符的閃爍,如下表所示。,2007年11月,匯編語言,36,INT 10h功能0Fh(獲取視頻模式信息) INT 10h功能0Fh返回關(guān)于當前視頻模式的信息,包括模式號、顯示的列數(shù)以及當前活躍視頻頁號。,2007年11月,匯編語言,37,INT 10h功能13h(以電傳打字機方式顯示字符串) INT 10h功能13h從屏幕上指定的位置開始顯示字符串
8、。字符串可以選擇包含字符及其屬性值。,2007年11月,匯編語言,38,例子:顯示色彩字符串 庫過程中的例子 Irvine16鏈接庫中的兩個過程:Gotoxy和Clrscr,2007年11月,匯編語言,39,使用INT 10h繪圖,在畫像素點之前,必須將視頻適配卡設(shè)置為下表中的某種標準圖形模式。 INT 10h可以識別的視頻圖形模式,坐標每種視頻模式的分辨率都用XMax和YMax表示。屏幕坐標范圍從左上角的x=0,y=0到右下角的x=Xmax-1,y=YMax-1。,2007年11月,匯編語言,40,和像素相關(guān)的INT 10h功能 寫像素(0Ch) 如下表所示,當視頻控制器處于圖形模式時,IN
9、T 10h功能0Ch在屏幕上繪制一個像素點。功能0Ch執(zhí)行得相當慢,這在繪制大量像素時更加明顯(大多數(shù)圖形程序在計算完每個像素的顏色數(shù)、水平分辨率等數(shù)據(jù)后,直接向視頻內(nèi)存寫數(shù)據(jù))。 INT 10h功能0Ch,2007年11月,匯編語言,41,讀像素 如下表所示,功能0Dh讀取屏幕上給定行列位置的像素值并在AL中返回。 INT 10h功能0Dh,畫線程序,2007年11月,匯編語言,42,內(nèi)存映射圖形,前面的章節(jié)展示了如何使用INT 10h繪制像素點和線,這種方法的基本缺點是速度太慢,因為每次繪制像素點的時候不得不執(zhí)行那么多的操作系統(tǒng)代碼。本節(jié)中,我們將圖形數(shù)據(jù)直接送到視頻內(nèi)存(VRAM)中,這
10、種方法被稱為內(nèi)存映射圖形技術(shù),它更加高效。 模式13h:320*200,256色 在模式13h下直接寫視頻內(nèi)存是最容易的,這時屏幕像素映射為一個二維字節(jié)數(shù)組,其中每個像素單獨占用一個字節(jié)。數(shù)組從屏幕左上角的像素開始,屏幕頂端的一行占用320字節(jié),下一個字節(jié)映射為第二行的第一個像素,以此類推。數(shù)組中的最后一個字節(jié)映射為屏幕右下角的像素。為什么每個像素要用一整個字節(jié)呢?這是因為需要用256個數(shù)值來表示所有可能的顏色。,2007年11月,匯編語言,43,OUT指令像素和顏色值使用OUT指令(輸出到端口)送到視頻適配器,其中DX中存放16位的端口值,要發(fā)送的值存放在AL中。例如視頻色彩調(diào)色板位于端口地
11、址3C8h處,下面的指令將值20h送該端口: mov dx,3C8h;port address mov al,20h;value to be output out dx,al;send value to port 色彩索引在模式13h中最有趣的事情是每個整數(shù)色彩值并不直接表示一種顏色,相反,該整數(shù)值表示一個被稱為調(diào)色板的色彩表的索引。調(diào)色板中的每個項都由三個獨立的整數(shù)(063)構(gòu)成,稱為RGB值(紅、綠、藍)。調(diào)色板的第0項控制著屏幕的背景顏色。 使用這種方案可以創(chuàng)建262 144種不同的色彩(643),但在某一時刻只能顯示256鐘不同的色彩,程序在運行的時候可非常容易地修改調(diào)色板以改變色彩。
12、,2007年11月,匯編語言,44,RGB色彩 RGB色彩依據(jù)的是光的疊加混合(相加色),與混合液體顏料使用的減色正好相反。例如,使用疊加混合法將所有色彩的亮度設(shè)為0就可以創(chuàng)建黑色。白色則正好相反,它是將所有的色彩亮度級都設(shè)為63(最大值)形成。事實上,當三種亮度相等的時候,就得到了各種灰色。 內(nèi)存映射圖形程序,2007年11月,匯編語言,45,鼠標程序設(shè)計,鼠標通常通過RS-232串口、PS-2鼠標口或無線連接同計算機的主板相連接。在探測鼠標之前,MS-DOS要求在內(nèi)存中安裝一個驅(qū)動程序,MS-Windows有自己內(nèi)建的鼠標驅(qū)動,但現(xiàn)在我們將著重講述MS-DOS提供的功能。 鼠標的移動是以被
13、稱為mickey的單位跟蹤計量的,一個mickey代表鼠標移動大約1/200英寸。Mickey到像素的轉(zhuǎn)換比率可以進行設(shè)置,默認情況下是每個水平像素對應(yīng)8個mickey,每個垂直像素對應(yīng)16個mickey。 鼠標INT 33h功能 INT 33h提供了關(guān)于鼠標的信息,包括鼠標的當前位置、最后按下的按鍵和移動速度等。INT 33h還可以用來隱藏和顯示鼠標光標。INT 33h在AX中而不是AH(在BIOS功能中常用)中接收功能號。,2007年11月,匯編語言,46,復(fù)位和獲取鼠標狀態(tài) INT 33h功能0將鼠標復(fù)位并確認鼠標可用。如果鼠標被發(fā)現(xiàn),則該功能進行下列設(shè)置:鼠標被定位在屏幕的中心,顯示頁
14、被設(shè)置為視頻頁0,鼠標指針被隱藏,mickey到像素的轉(zhuǎn)換比率和鼠標移動速度被設(shè)置為默認值,最后,鼠標的移動范圍被設(shè)置為整個屏幕。細節(jié)如下表所示: INT 33h功能0,2007年11月,匯編語言,47,顯示和隱藏鼠標指針 下面兩張表所示的INT 33h功能1和功能2專門用于顯示和隱藏鼠標指針。鼠標驅(qū)動內(nèi)部保留著一個計數(shù)值,調(diào)用功能1時該計數(shù)值增1(在非0的情況下),調(diào)用功能2時該計數(shù)值減1。當計數(shù)值為0時鼠標指針被顯示,功能0(復(fù)位鼠標)將該計數(shù)值設(shè)置為-1。 INT 33h功能1,INT 33h功能2,2007年11月,匯編語言,48,獲取鼠標位置和狀態(tài) INT 33h功能3獲取鼠標的位置
15、和狀態(tài),具體如下所示: INT 33h功能3,2007年11月,匯編語言,49,將像素坐標轉(zhuǎn)換為字符坐標MS-DOS中的字符是8像素寬、8像素高。因此像素坐標處以字符的大小就可以轉(zhuǎn)換成字符坐標。假設(shè)像素位置和字符都是從0開始的,下面的公式將像素坐標p轉(zhuǎn)換成字符坐標C,字符的大小用D表示: C = int(P/D) 例如,假設(shè)字符是8像素寬的,如果INT 33h功能3返回的X坐標是100(像素),那么轉(zhuǎn)換為字符坐標位置就是12,因為C=int(100/8)。 設(shè)置鼠標位置 INT 33h功能4將鼠標位置移到特定的X和Y坐標處,如下表所示: INT 33h功能4,2007年11月,匯編語言,50,
16、將字符坐標轉(zhuǎn)換為像素坐標可使用下面的公式將字符坐標轉(zhuǎn)換為像素坐標,其中C=字符坐標,P=像素坐標,D=字符大?。?P = C * D 在水平方向上,P是字符單元的左邊所在位置,在垂直方向上,P是字符單元的頂端所在的位置。如果字符寬度是8個像素并且想將鼠標定位在第12個字符單元處,那么字符單元最左邊的像素是96。 獲取按鈕的按下和釋放 功能5返回鼠標按鍵的狀態(tài)以及鼠標鍵最后按下的位置。在一個事件驅(qū)動的編程環(huán)境中,拖動事件總是以鼠標鍵的按下開始的,一旦對待定的鼠標鍵調(diào)用了該功能,那么該按鍵的狀態(tài)就被重置,第二次調(diào)用該功能時什么也不會返回。,2007年11月,匯編語言,51,INT 33h功能5,2007年11月,匯編語言,52,如下表所示,功能6獲取鼠標釋放的信息。在事件驅(qū)動的程序設(shè)計中,鼠標單擊事件只
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒類生產(chǎn)技術(shù)規(guī)范制度
- 易制毒安全生產(chǎn)規(guī)章制度
- 2026上半年云南林業(yè)職業(yè)技術(shù)學(xué)院招聘16人備考考試題庫附答案解析
- 安全生產(chǎn)三個清單制度
- 存貨及生產(chǎn)成本管理制度
- 2026江西吉安吉州區(qū)興泰科技股份有限公司向社會招募就業(yè)見習(xí)人員參考考試試題附答案解析
- 鄉(xiāng)鎮(zhèn)農(nóng)業(yè)標準化生產(chǎn)制度
- 2026北京國防科技大學(xué)電子對抗學(xué)院幼兒園社會招聘3人參考考試試題附答案解析
- 變電站安全生產(chǎn)獎罰制度
- 獸醫(yī)站安全生產(chǎn)制度
- 成體館加盟協(xié)議書范文范本集
- DB34T 4506-2023 通督調(diào)神針刺療法應(yīng)用指南
- 02-輸電線路各階段設(shè)計深度要求
- 《認識時鐘》大班數(shù)學(xué)教案
- T-CI 178-2023 高大邊坡穩(wěn)定安全智能監(jiān)測預(yù)警技術(shù)規(guī)范
- THHPA 001-2024 盆底康復(fù)管理質(zhì)量評價指標體系
- 傷口的美容縫合減少瘢痕的形成
- MSOP(測量標準作業(yè)規(guī)范)測量SOP
- 顱鼻眶溝通惡性腫瘤的治療及護理
- 人教版四年級《上冊語文》期末試卷(附答案)
- 四川山體滑坡地質(zhì)勘察報告
評論
0/150
提交評論