汇编语言(十二)颜色搭配显示+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或操作系统设定以供软件调用。
AH=00h 设定显示模式
AH=01h 设定游标形态
AH=02h 设定游标位置
AH=03h 获取游标位置与形态
AH=04h 获取光笔位置
AH=05h 设定显示页
AH=06h 清除或卷轴画面(上)
AH=07h 清除或卷轴画面(下)
AH=08h 读取游标处字符与属性
AH=09h 更改游标处字符与属性
AH=0Ah 更改游标处字符
AH=0Bh 设定边界颜色
AH=0Eh 在TTY模式下写字符
AH=0Fh 取得目前显示模式
AH=13h 写字符串
INT 11h 返回设备列表。
INT 12h 获取常规内存容量。
INT 13h 低阶磁盘服务。
AH=00h 复位磁盘驱动器。
AH=01h 检查磁盘驱动器状态。
AH=02h 读扇区。
AH=03h 写扇区。
AH=04h 校验扇区。
AH=05h 格式化磁道。
AH=08h 取得驱动器参数。
AH=09h 初始化硬盘驱动器参数。
AH=0Ch 寻道。
AH=0Dh 复位硬盘控制器。
AH=15h 取得驱动器类型。
AH=16h 取得软驱中盘片的状态。
INT 14h 串口通信例程。
AH=00h 初始化串口。
AH=01h 写出字符。
AH=02h 读入字符。
AH=03h 状态。
INT 15h 其它(系统支持例程)。
AH=4FH 键盘拦截。
AH=83H 事件等待。
AH=84H 读游戏杆。
AH=85H SysRq 键。
AH=86H 等待。
AH=87H 块移动。
AH=88H 获取扩展内存容量。
AH=C0H 获取系统参数。
AH=C1H 获取扩展 BIOS 数据区段。
AH=C2H 指针设备功能。
AH=E8h, AL=01h (AX = E801h) 获取扩展内存容量(自从 1944 年引入的新功能),可获取到 64MB 以上的内存容量。
AH=E8h, AL=20h (AX = E820h) 查询系统地址映射。该功能取代了 AX=E801h 和 AH=88h。
INT 16h 键盘通信例程。
AH=00h 读字符。
AH=01h 读输入状态。
AH=02h 读 Shift 键(修改键)状态。
AH=10h 读字符(增强版)。
AH=11h 读输入状态(增强版)。
AH=12h 读 Shift 键(修改键)状态(增强版)。
INT 17h 打印服务。
AH=00h 打印字符。
AH=01h 初始化打印机。
AH=02h 检查打印机状态。
INT 18h 执行磁带上的 BASIC 程序:“真正的”IBM 兼容机在 ROM 里内置 BASIC 程序,当引导失败时由 BIOS 调用此例程解释执行。(例:打印“Boot disk error. Replace disk and press any key to continue...”这类提示信息)
INT 19h 加电自检之后载入操作系统。
INT 1Ah 实时钟服务。
AH=00h 读取实时钟。
AH=01h 设置实时钟。
AH=02h 读取实时钟时间。
AH=03h 设置实时钟时间。
AH=04h 读取实时钟日期。
AH=05h 设置实时钟日期。
AH=06h 设置实时钟闹铃。
AH=07h 重置实时钟闹铃。
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是一种无形光标。

有些视频卡有16条扫描线(00H-0Fh)。

有些视频卡不使用CH的第5位,对于这种情况,可以尝试行扫描开始大于行扫描结束(如:CX=0706h) 。

 
设置光标位置 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颜色属性。
CH=高行数,CL=左列数,DH=低行数,DL=右列数

 
向下滚动窗口 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=屏幕字符的列数
         AL=显示模式(参见功能00H中的说明)
         BH=页码
写字符串(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有效,在此从略

你可能感兴趣的:(Assembly)