![]() | 第9章 图形显示 | -239- | |||||||||||||||||||
C:\ASM\>DEBUG[Enter] -a100 121D:0100 mov ax,0004 121D:0103 int 10 121D:0105 int 20 121D:0107 |
有一点还要提醒各位,即使显示系统已被设定为图形模式,但BIOS 10H中断所提供的字符显示功能包括设定光标位置等同样可以应用。10H中断服务会自己判断显示系统的工作模式而采取相应的方法完成这些功能。我们编制程序时仍可调用这些功能。 在讨论具体的图形功能调用之前我们需要先搞清楚这样几个问题: |
||||||||||||||||||||
1、图形的构成 一幅图形究竟由什么构成,美术工作者也许会说图形是由一系列线条或色块构成。此种说 |
|||||||||||||||||||||
法并不错,但并不适用于计算机。电脑中的图形,无论是出现在显示器上还是打印机上,其实都是由一系列的点组成。以最简单的图形--直线为例,当一组点以很密的间距排列时,从总体上看它们就是一条直线(图9-1)。而且点越小越密,所组成的线就越细越光滑。所以我们可以看出,如果能解决在显示器上画"点"这个问题,实际上也就解决了画图的问题。 | ![]() 图9-1 直线的构成 |
||||||||||||||||||||
2、色彩的构成与表达 在第六章里我们对这个问题已有所讨论。各种色彩都可以由三种“基本色”红(Red)、绿(Green)、蓝(Blue)(通常称之为RGB)合成出来。就CGA而言,它具有两个彩色组,每组的4种色彩分别由数字0、1、2、3表示,具体的对应关系如下: 彩色组0:0--屏幕底色 1--绿色 2--红色 3--黄色 彩色组1:0--屏幕底色 1--青色 2--品红 3--白色 一般情况下电脑默认使用彩色组1的四种色彩,不过BIOS提供了一个功能调用,用于选定使用彩色组0。 |
|||||||||||||||||||||
3、图形字符 计算机中的字符与图形本是一回事。显示器上出现的字符也是由点组成的,这一点我们在第六章已有讲述。比如说字母A,它在屏幕上实际是如图9-2所示的一组点。 现在的问题就是这样一组点如何用数字表示。试想如果我们把不亮的点用0表示,把亮点用1表示,那么字母A最顶端的8个点就可以表示为"00010000",这实际上是一个8位二进制数。下面几行同样可以用几个8位二进制数表示,因此字母A可以用8个8位二进制数表示,共用8个字节。 在计算机内有很多地方使用这种方法描述文字与符号,我们所常见的汉字也有用此方法描述的。只不过由于汉字的宽度与高度都大于8个点,所以描述汉字要使用更多的字节。 我们常把描述一个字符(汉字)的一组点称为"点阵",而把"点阵"的"数字表示"称为"字模"(Font Mask),以刚才所举的字母A为例,组成字母A的64个点就是这个字母的点阵,而表示这个点阵的8个8位二进制数就是这个字母的字模。 |
|||||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |