在使用 BIOS 中断进行文本模式显示时,字符的属性值(通常放在 BH 寄存器中)决定了字符的颜色和背景。字符属性是一个 8 位(1 字节)值,其中:
- 高 4 位用于表示背景颜色。
 - 低 4 位用于表示前景颜色。
 
字符属性的格式
| 高4位:背景颜色 | 低4位:前景颜色 |
- 前景颜色(低 4 位):决定字符本身的颜色。
 - 背景颜色(高 4 位):决定字符的背景色。
 
常用颜色编码
| 颜色代码 | 颜色 | 前景颜色示例 | 背景颜色示例 | 
|---|---|---|---|
| 0 | 黑色 | 0x00 | 
0x00 | 
| 1 | 蓝色 | 0x01 | 
0x10 | 
| 2 | 绿色 | 0x02 | 
0x20 | 
| 3 | 青色 | 0x03 | 
0x30 | 
| 4 | 红色 | 0x04 | 
0x40 | 
| 5 | 洋红色 | 0x05 | 
0x50 | 
| 6 | 棕色 | 0x06 | 
0x60 | 
| 7 | 浅灰色 | 0x07 | 
0x70 | 
| 8 | 深灰色 | 0x08 | 
0x80 | 
| 9 | 亮蓝色 | 0x09 | 
0x90 | 
| A(10) | 亮绿色 | 0x0A | 
0xA0 | 
| B(11) | 亮青色 | 0x0B | 
0xB0 | 
| C(12) | 亮红色 | 0x0C | 
0xC0 | 
| D(13) | 亮洋红色 | 0x0D | 
0xD0 | 
| E(14) | 黄色 | 0x0E | 
0xE0 | 
| F(15) | 白色 | 0x0F | 
0xF0 | 
设置前景和背景颜色的组合
字符属性可以通过组合前景和背景颜色的代码来定义。例如:
黑底白字:
0x0F- 背景颜色(高 4 位) = 
0(黑色) - 前景颜色(低 4 位) = 
F(白色) 
- 背景颜色(高 4 位) = 
 蓝底黄字:
0x1E- 背景颜色(高 4 位) = 
1(蓝色) - 前景颜色(低 4 位) = 
E(黄色) 
- 背景颜色(高 4 位) = 
 红底绿字:
0x4A- 背景颜色(高 4 位) = 
4(红色) - 前景颜色(低 4 位) = 
A(亮绿色) 
- 背景颜色(高 4 位) = 
 
注意事项
- 背景颜色的最高位(第 7 位)可以用作闪烁位:如果设置此位为 
1,字符会闪烁。例如,0x8F表示黑底白字且闪烁。 - 在 BIOS 使用的 16 色文本模式下,颜色选择有限,适用于简单的文本模式显示。
 
通过组合前景和背景颜色值,可以控制字符显示效果,从而实现丰富的文本显示功能。
