汇编字符属性
来源:http://www.iteedu.com/plang/asm/asmpcshzhjj/6-2.php
直觉告诉我们显示在屏幕上的那些字符是具有"个性"的。最明显的,不同的字符可以有不同的颜色,有时候我们会在屏幕上看到一闪一闪的字符,如果使用一块老式的MDA卡,还能看到具有下划线的字符。
这里所说的"个性"指得就是每个字符可以具有的各种不同显示形式,这些不同的形式就是一般所说的"字符属性"。对于一个具体的字符是如何表示它的属性呢?在PC机的显示系统中,属性是由一个字节的数据表示的(图6-3):
上一节提到过各种颜色都是由RGB三种基本颜色合成的,所以属性字节中的低3位指出了组成字符颜色的RGB值。如果这三位是001,那么表示字符的颜色是蓝色;若这三位是011,那么字符的颜色就是蓝+绿,即青色。
"I"位是字符加亮位,这一位置1时则字符的颜色会变亮。如果认为"RGB"位控制了CRT电子枪的开关,那么"I"位相当于控制了加在电子枪上的信号电压,"I"位置1时信号电压加强了一倍,所以屏幕上的字符颜色会更亮。
Bit4-Bit6位控制了背影颜色的RGB值,"F"位的定义和"I"位不同,它表示字符是否闪烁,若F位为1,则屏幕上的字符将一闪一闪的。下面不妨来看两个实际属性字节:
(1)00100110 (2)11011010
图6-3 属性字节的位定义
第一个字节反映了字符的颜色是红+绿=棕色,不加亮;背影颜色是绿色,字符正常显示。第二个字节反映了字符的颜色是加亮的绿色;背影颜色是红+蓝=洋红,字符闪烁显示。这些只是理论上的分析,如果想验证这些分析带还要学习一个新的BIOS INT 10H功能调用--09H功能。