汇编字符属性

来源: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功能。

posted on   大宝pku  阅读(1928)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架

导航

< 2010年6月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10
点击右上角即可分享
微信分享提示