組合語言(十二)顏色搭配顯示+BIOS功能呼叫表+INT 10H功能詳細列表
顏色顯示
二進位制數 | 顏色 | 例子 | 二進位制數 | 顏色 | 例子 |
0000 | 黑色 | black | 1000 | 灰色 | gray |
0001 | 藍色 | blue | 1001 | 淡藍色 | light blue |
0010 | 綠色 | green | 1010 | 淡綠色 | light green |
0011 | 青色 | cyan | 1000 | 淡青色 | light cyan |
0100 | 紅色 | red | 1100 | 淡紅色 | light red |
0101 | 紫紅色 | magenta | 1101 | 淡紫紅色 | light magenta |
0110 | 棕色 | brown | 1110 | 黃色 | yellow |
0111 | 銀色 | light gray | 1111 | 白色 | white |
BIOS 中斷向量表
中斷 | 描述 | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
INT 00h | CPU: 除零錯,或商不合法時觸發 | ||||||||||||||||||||||||||||||
INT 01h | CPU: 單步陷阱,TF標記為開啟狀態時,每條指令執行後觸發 | ||||||||||||||||||||||||||||||
INT 02h | CPU: 非可遮蔽中斷, 如 開機自我測試 時發生記憶體錯誤觸發。 | ||||||||||||||||||||||||||||||
INT 03h | CPU: 第一個未定義的中斷向量, 約定俗成僅用於除錯程式 | ||||||||||||||||||||||||||||||
INT 04h | CPU: 算數溢位。通常由INTO指令在置溢位位時觸發。 | ||||||||||||||||||||||||||||||
INT 05h | 在按下Shift-Print Screen或BOUND指令檢測到範圍異常時觸發。 | ||||||||||||||||||||||||||||||
INT 06h | CPU: 非法指令。 | ||||||||||||||||||||||||||||||
INT 07h | CPU: 沒有數學協處理器時嘗試執行浮點指令觸發。 | ||||||||||||||||||||||||||||||
INT 08h | IRQ0: 可程式設計中斷控制器每 55 毫秒觸發一次,即每秒 18.2 次。 | ||||||||||||||||||||||||||||||
INT 09h | IRQ1: 每次鍵盤按下、按住、釋放。 | ||||||||||||||||||||||||||||||
INT 0Ah | IRQ2: | ||||||||||||||||||||||||||||||
INT 0Bh | IRQ3: COM2/COM4。 | ||||||||||||||||||||||||||||||
INT 0Ch | IRQ4: COM1/COM3。 | ||||||||||||||||||||||||||||||
INT 0Dh | IRQ5: 硬碟控制器(PC/XT 下)或 LPT2。 | ||||||||||||||||||||||||||||||
INT 0Eh | IRQ6: 需要時由軟碟控制器呼叫。 | ||||||||||||||||||||||||||||||
INT 0Fh | IRQ7: LPT1。 | ||||||||||||||||||||||||||||||
INT 10h | 顯示服務 - 由BIOS或作業系統設定以供軟體呼叫。
|
||||||||||||||||||||||||||||||
INT 11h | 返回裝置列表。 | ||||||||||||||||||||||||||||||
INT 12h | 獲取常規記憶體容量。 | ||||||||||||||||||||||||||||||
INT 13h | 低階磁碟服務。
|
||||||||||||||||||||||||||||||
INT 14h | 串列埠通訊例程。
|
||||||||||||||||||||||||||||||
INT 15h | 其它(系統支援例程)。
|
||||||||||||||||||||||||||||||
INT 16h | 鍵盤通訊例程。
|
||||||||||||||||||||||||||||||
INT 17h | 列印服務。
|
||||||||||||||||||||||||||||||
INT 18h | 執行磁帶上的 BASIC 程式:“真正的”IBM 相容機在 ROM 裡內建 BASIC 程式,當引導失敗時由 BIOS 呼叫此例程解釋執行。(例:列印“Boot disk error. Replace disk and press any key to continue...”這類提示資訊) | ||||||||||||||||||||||||||||||
INT 19h | 加電自檢之後載入作業系統。 | ||||||||||||||||||||||||||||||
INT 1Ah | 實時鐘服務。
|
||||||||||||||||||||||||||||||
INT 1Bh | Ctrl+Break,由 IRQ 9 自動呼叫。 | ||||||||||||||||||||||||||||||
INT 1Ch | 預留,由 IRQ 8 自動呼叫。 | ||||||||||||||||||||||||||||||
INT 1Dh | 不可呼叫:指向視訊引數表(包含視訊模式的資料)的指標。 | ||||||||||||||||||||||||||||||
INT 1Eh | 不可呼叫:指向軟盤模式表(包含關於軟碟機的大量資訊)的指標。 | ||||||||||||||||||||||||||||||
INT 1Fh | 不可呼叫:指向視訊圖形字元表(包含從 80h 到 FFh 的 ASCII 字元的資料)的資訊。 | ||||||||||||||||||||||||||||||
INT 41h | 地址指標:硬碟引數表(第一硬碟)。 | ||||||||||||||||||||||||||||||
INT 46h | 地址指標:硬碟引數表(第二硬碟)。 | ||||||||||||||||||||||||||||||
INT 4Ah | 實時鐘在鬧鈴時呼叫。 | ||||||||||||||||||||||||||||||
INT 70h | IRQ8: 由實時鐘呼叫。 | ||||||||||||||||||||||||||||||
INT 74h | IRQ12: 由滑鼠呼叫 | ||||||||||||||||||||||||||||||
INT 75h | IRQ13: 由數學協處理器呼叫。 | ||||||||||||||||||||||||||||||
INT 76h | IRQ14: 由第一個 IDE 控制器所呼叫 | ||||||||||||||||||||||||||||||
INT 77h | IRQ15: 由第二個 IDE 控制器所呼叫 |
INT 10H支援功能列表
功能 | 功能程式碼 | 引數 | 返回 |
---|---|---|---|
設定顯示模式 | AH=00H | AL=顯示模式 | AL=顯示模式標誌/CRT控制模式位元組 |
設定文字方式游標 | AH=01H | CH=行掃描開始,CL=行掃描結束 通常一個字元單元有8個掃描行(0-7)。所以,CX=0607H是一個正常的游標,CX=0007H是一個完整塊游標。如果設定CH的第5位,這通常意味著“隱藏游標”,所以CX=2607H是一種無形游標。 |
|
設定游標位置 | AH=02H | BH=頁碼,DH=行,DL=列 | |
獲取游標位置和形狀 | AH=03H | BX=頁碼 | AX=0,CH=行掃描開始,CL=行掃描結束,DH=行,DL=列 |
讀取光筆位置(VGA系統不工作) | AH=04H | AH=狀態(0=無觸發,1=觸發),BX=X畫素,CH=Y畫素,CL=畫素行模式(0FH-10H),DH=字元Y,DL=字元X | |
選擇活動顯示頁 | AH=05H | AL=頁碼 | |
向上滾動視窗 | AH=06H | AL=滾動的行(0=清除,被用於CH,CL,DH,DL), BH=背景顏色和前景顏色,BH=43H,意義為背景顏色為紅色,前景顏色為青色。請參考 BIOS顏色屬性。 |
|
向下滾動視窗 | AH=07H | 參考向上滾動 | |
讀游標所在位置的字元和屬性 | AH=08H | BH=頁碼 | AH=顏色,AL=字元 |
在當前游標位置寫字元和屬性 | AH=09H | AL=字元,BH=頁碼,BL=顏色,CX=多次列印字元 | |
在游標位置寫入字元 | AH=0AH | AL=字元,BH=頁碼,CX=多次列印字元 | |
設定背景/邊框顏色 | AH=0BH,BH=00H | BL=背景/邊框顏色(邊框顏色只能在文字模式設定) | |
設定調色盤 | AH=0BH,BH=01H | BL=調色盤ID(只使用於CGA,但現在的顯示卡都支援多個或所有模式。) | |
寫圖形畫素 | AH=0CH | AL=顏色,BH=頁碼 CX=x,DX=y | |
讀圖形畫素 | AH=0DH | BH=頁碼,CX=x,DX=y | AL=顏色 |
電傳打字機輸出 | AH=0EH | AL=字元,BH=頁碼,BL=顏色(只適用於圖形模式) | |
獲取當前顯示模式 | AH=0FH | AH=螢幕字元的列數 |
|
寫字串(EGA+,最低PC AT ) | AH=13H | AL=寫模式,BH=頁碼,BL=顏色,CX=字串長度,DH=行,DL=列,ES:BP=字串偏移量 |
1、功能00H
功能描述:設定顯示器模式
入口引數:AH=00H AL= 顯示器模式,見下表所示
出口引數:無
可用的顯示模式如下所列:
00H:40×25 16色 文字
01H:40×25 16 色 文字
02H:80×25 16色 文字
03H: 80×25 16色 文字
04H:320×200 4色
05H:320×200 4 色
06H:640×200 2色
07H:80×25 2色 文字
08H:160×200 16色
09H:320×200 16 色
0AH:640×200 4色
0BH:保留
0CH:保留
0DH:320×200 16色
0EH:640×200 16 色
0FH:640×350 2(單色)
10H:640×350 4色
10H:640×350 16色
11H:640×480 2 色
12H:640×480 16色
13H:640×480 256色
對於超級VGA顯示卡,我們可用AX=4F02H和下列BX 的值來設定其顯示模式。
BX顯示模式屬性
100H:640×400 256色
101H:640×480 256色
102H:800×600 16 色
103H:800×600 256色
104H:1024×768 16色
105H:1024×768 256色
106H:1280×1024 16 色
107H:1280×1024 256色
108H:80×60 文字模式
109H:132×25 文字模式
10AH:132×43 文 本模式
10BH:132×50 文字模式
10CH:132×60 文字模式
2、功能01H
功能描述:設定 游標形狀
入口引數:AH=01H
CH低四位=游標的起始行
CL低四位=游標的終止行
出口引數:無
3、 功能02H
功能描述:用文字座標下設定游標位置
入口引數:AH=02H
BH=顯示頁碼
DH=行(Y座標)
DL= 列(X座標)
出口引數:無
4、功能03H
功能描述:在文字座標下,讀取游標各種資訊
入口參 數:AH=03H
BH=顯示頁碼
出口引數:CH=游標的起始行
CL=游標的終止行
DH=行(Y座標)
DL=列 (X座標)
5、功能04H
功能描述:獲取當前狀態和光筆位置
入口引數:AH=04H
出口參 數:AH=00h——光筆未按下/未觸發,01h——光筆已按下/已觸發
BX=象素列(圖形X座標)
CH=象素行(圖形Y座標,顯示模 式:04H~06H)
CX=象素行(圖形Y座標,顯示模式:0DH~10H)
DH=字元行(文字Y座標)
DL=字元列(文字X坐 標)
6、功能05H
功能描述:設定顯示頁,即選擇活動的顯示頁
入口引數:AH=05H
AL=顯示頁
對 於CGA、EGA、MCGA和VGA,其顯示頁如下表所列: 模式頁數顯示器型別
00H、01H0~7CGA、EGA、MCGA、VGA
02H、 03H0~3CGA
02H、03H0~7EGA、MCGA、VGA
07H0~7EGA、VGA
0DH0~7EGA、VGA
0EH0~3EGA、 VGA
0FH0~1EGA、VGA
10H0~1EGA、VGA
對於PCjr:
AL=80H——讀取CRT/CPU頁寄存 器
81H——設定CPU頁暫存器
82H——設定CRT頁暫存器
83H——設定CRT/CPU頁暫存器
BH=CRT頁(子 功能號82H和83H)
BL=CPU頁(子功能號81H和83H)
出口引數:對於前者,無出口引數,但對PCjr在子功能80H~83H 呼叫下,有:BH=CRT頁暫存器,BL=CPU頁暫存器
7、功能06H和07H
功能描述:初始化螢幕或滾屏
入口 引數:AH=06H——向上滾屏,07H——向下滾屏
AL=滾動行數(0——清視窗)
BH=空白區域的預設屬性
(CH、CL)= 視窗的左上角位置(Y座標,X座標)
(DH、DL)=視窗的右下角位置(Y座標,X座標)
出口引數:無
8、功能 08H
功能描述:讀游標處的字元及其屬性
入口引數:AH=08H
BH=顯示頁碼
出口引數:AH=屬性
AL=字 符
9、功能09H
功能描述:在當前游標處按指定屬性顯示字元
入口引數:AH=09H
AL=字元
BH= 顯示頁碼
BL=屬性(文字模式)或顏色(圖形模式)
CX=重複輸出字元的次數
出口引數:無
10、功能 0AH
功能描述:在當前游標處按原有屬性顯示字元
入口引數:AH=0AH
AL=字元
BH=顯示頁碼
BL=顏色 (圖形模式,僅適用於PCjr)
CX=重複輸出字元的次數
出口引數:無
11、功能0BH
功能描述:設定調 色板、背景色或邊框
入口引數:AH=0BH
設定顏色:BH=00H,01=顏色
選擇調色盤:BH=01H,BL=調色盤 (320×200、4種顏色的圖形模式)
出口引數:無
12、功能0CH
功能描述:寫圖形象素
入口參 數:AH=0CH
AL=象素值
BH=頁碼
(CX、DX)=圖形座標列(X)、行(Y)
出口引數:無
13、功能0DH
功能描述:讀圖形象素
入口引數:AH=0DH
BH=頁碼
(CX、DX)=圖形座標列(X)、行(Y)
出 口引數:AL=象素值
14、功能0EH
功能描述:在Teletype模式下顯示字元
入口引數:AH=0EH
AL= 字元
BH=頁碼
BL=前景色(圖形模式)
出口引數:無
15、功能0FH
功能描述:讀取顯示器模式
入 口引數:AH=0FH
出口引數:AH=螢幕字元的列數
AL=顯示模式(參見功能00H中的說明)
BH=頁碼
16、功能10H
功能描述:顏色中斷。
其子功能說明如下:
00H — 設定調色盤暫存器
01H — 設定邊框顏色
02H — 設 置調色盤和邊框
03H — 觸發閃爍/亮顯位
07H — 讀取調色盤暫存器
08H — 讀取邊框顏色
09H — 讀取調 色板和邊框
10H — 設定顏色暫存器
12H — 設定顏色暫存器塊
13H — 設定顏色頁狀態
15H — 讀取顏色寄 存器
17H — 讀取顏色暫存器塊
1AH — 讀取顏色頁狀態
1BH — 設定灰度值
17、功能11H
功能描述:字型中斷。
其子功能說明如下:
00H裝入使用者字型和可程式設計控制器
10H裝入使用者字型和可程式設計控制器
01H裝入 8×14 ROM字型和可程式設計控制器
11H裝入8×14 ROM字型和可程式設計控制器
02H裝入8×8 ROM字型和可程式設計控制器
12H 裝入8×8 ROM字型和可程式設計控制器
03H設定塊指示器
04H裝入8×16 ROM字型和可程式設計控制器
14H裝入 8×16 ROM字型和可程式設計控制器
20H設定INT 1Fh字型指標
21H為使用者字型設定INT 43h
22H為 8×14 ROM字型設定INT 43H
23H為8×8 ROM字型設定INT 43H
24H為8×16 ROM字型設定INT 43H
30H 讀取字型資訊
18、功能12H
功能描述:顯示器的配置中斷。
其子功能說明如下:
10H — 讀取配置資訊
20H — 選 擇螢幕列印
30H — 設定掃描行
31H — 允許/禁止裝入預設調色盤
32H — 允許/禁止顯示
33H — 允許/ 禁止灰度求和
34H — 允許/禁止游標模擬
35H — 切換活動顯示
36H — 允許/禁止螢幕重新整理
19、功能 13H
功能描述:在Teletype模式下顯示字串
入口引數:AH=13H
BH=頁碼
BL=屬性(若AL=00H或 01H)
CX=顯示字串長度
(DH、DL)=座標(行、列)
ES:BP=顯示字串的地址 AL=顯示輸出方式
0—— 字串中只含顯示字元,其顯示屬性在BL中。顯示後,游標位置不變
1——字串中只含顯示字元,其顯示屬性在BL中。顯示後,游標位置改變
2 ——字串中含顯示字元和顯示屬性。顯示後,游標位置不變
3——字串中含顯示字元和顯示屬性。顯示後,游標位置改變
出口引數:無
20、 功能1AH
功能描述:讀取/設定顯示組合編碼,僅PS/2有效,在此從略
21、功能1BH
功能描述:讀取功能/ 狀態資訊,僅PS/2有效,在此從略
22、功能1CH
功能描述:儲存/恢復顯示器狀態,僅PS/2有效,在此從略