在使用 BIOS 中断进行文本模式显示时,字符的属性值(通常放在 BH 寄存器中)决定了字符的颜色背景。字符属性是一个 8 位(1 字节)值,其中:

  • 高 4 位用于表示背景颜色
  • 低 4 位用于表示前景颜色

字符属性的格式

  1. | 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(白色)
  • 蓝底黄字0x1E

    • 背景颜色(高 4 位) = 1(蓝色)
    • 前景颜色(低 4 位) = E(黄色)
  • 红底绿字0x4A

    • 背景颜色(高 4 位) = 4(红色)
    • 前景颜色(低 4 位) = A(亮绿色)

注意事项

  • 背景颜色的最高位(第 7 位)可以用作闪烁位:如果设置此位为 1,字符会闪烁。例如,0x8F 表示黑底白字且闪烁。
  • 在 BIOS 使用的 16 色文本模式下,颜色选择有限,适用于简单的文本模式显示。

通过组合前景和背景颜色值,可以控制字符显示效果,从而实现丰富的文本显示功能。