VGA/SVGA显示系统VGA:VideoGraphicsArray(已经很少使用)SVGA:SuperVideoGraphicsArray(SVGA是VGA的改进型,分辨率和颜色数提高了,分辨率都在1024×768以上,颜色数可以达24/32位真彩。)显示信息分类显示器屏幕上显示的信息可分为三类:字符(character)、图形(graphics)、图像(image)。•字符:可分为西文字符和中文字符两种。•图形信息:指的是以线段、曲线等组成的几何图形。•图像信息:有灰度等级的图形。图像分黑白和彩色两种。黑白图像用像素(Pixel)的灰度等级来表示。彩色图像用红R、绿G、蓝B三基色各分量的灰度等级组合表示。•彩色图像由三种基本颜色合成:红、绿、蓝。•像素:在显示器的屏幕上有规则地排列着许多细小的光点,这样的光点被称之为像素。显示器有两种形式:一种是阴极射线管CRT(CathodeRayTube)显示器;另一种是液晶LCD(LiquidCrystalDevice)显示器。显示器的性能指标•单色显示器仅有灰度等级,即亮暗等级。•彩色显示器不使用灰度等级的概念,而使用颜色数。所谓颜色数是指把红、绿、蓝三基色各分量的灰度等级组合起来之后,称为颜色数。•点距:指的是屏幕上两个像素点之间的距离,其值越小,画面就越清晰自然。•分辨率的表示方法为:水平像素数×垂直像素数,如640×480、780×640、800×600、1024×768、1280×1024……、2048×1536。•刷新频率:指的是每秒钟所能够显示的图像的帧数。CRT显示器都可以达到85Hz以上的刷新频率。•视频带宽:指每秒钟扫描过的像素点的个数,单位为MHz,等于“水平分辨率×垂直分辨率×刷新频率”。VGA/SVGA显示系统结构•以图形媒体加速器为核心组成的,结构如下图:1234ABCD4321DCBAMCH/GMCH显示总线图形媒体加速器监视器存储器存储器显示BIOS图10.1VGA/SVGA显示系统结构局部•显示控制器的组成:由图形媒体加速器、显示BIOS、局部存储器三部分组成。•两种实现方案:独立显示控制器方案:MCH;集成显示控制器方案:GMCH。1234ABCD4321DCBA图2.3IA-32计算机总体结构CPUBSB总线二级CacheFSB总线I/O总线显示系统显示总线MCH/GMCH存储总线存储器SMBus总线ATA设备ATA总线ICHxPCI总线PCI设备IEEE-1394a接口SATA设备SATA总线USB设备USB总线音频总线音频编/解码器FWHLPC总线超级I/O键盘鼠标打印机软磁盘RS-232C接口PCIExpress×1总线PCIExpress×1设备CRT显示器的性能指标•屏幕尺寸;•灰度等级与颜色数;•点距;•分辨率;•刷新频率;•扫描方式;•视频带宽;•控制方式LCD显示器的性能指标除了屏幕尺寸、灰度等级与颜色数、刷新频率等指标外,还有:•可视角度•反应速度•点缺陷显示器与显示器控制器之间的接口两种形式:•模拟接口,符合VGA显示系统的要求;•数字接口,符合数字视频接口(DVI:DigitalVideoInterface)规范1.0的要求。显示总线(显示卡与MCH主桥的连接)在IA-32计算机中,使用两种显示总线:•AGP(AcceleratedGraphicsPort)总线(Intel8xx芯片组支持)•PCIExpress×16总线(Intel9xx芯片组支持)则存在AGP显示卡和PCIExpress×16显示卡两种显示卡,互不兼容!用汇编语言控制显示器•在汇编语言程序中,通过使用INT10H指令可以调用操作BIOS中的视频显示器的系统服务功能。其中所提供的系统服务子功能很多,皆通过在AH寄存器中置入不同的号码来实现。下例是通过BIOS中的视频显示器的系统服务功能中的02H和09H号子功能向显示器屏幕上输出4个“*”的程序实例。例通过BIOS中的视频系统服务向显示器屏幕上输出4个“*”。:.modelsmall.stack20h.code;调用2号INT10H,设置光标位置为:0C行、26H列。start:movah,02hmovbh,0movdx,0c26h;光标所在行和列int10h;调用9号INT10H,在显示器上输出字符“*”。movah,09hmoval,‘*’;AL为要输出的字符的ASCII码movbh,0hmovbl,47h;颜色属性(底色、字符色)movcx,4h;要输出的字符个数int10h.exitendstartBIOS中的显示器服务程序采用INT10H来实现:•(1)功能号0调用设置显示方式;•(2)功能号9(写有属性字符),•功能号0AH(写无属性字符),•功能号0EH(写字符类似打印机方式)调用实现字符显示接口;•(3)功能号0BH(确定色彩)、•功能号0CH(画点)和•功能号0DH(读点)调用•实现图形显示接口。例:使显示器显示一张移动的“笑脸”。解:“笑脸”字符的ASCII码为02H,要使笑脸动起来,可按如下步骤:•(1)在屏幕上显示“笑脸”。•(2)延迟一定时间,这样使图形更清晰。•(3)清除“笑脸”(可用清除部分屏幕或用空字符在原位置重画一次来实现)。•(4)改变“笑脸”的行、列坐标。•(5)返回第一步,重复上述过程。.modelsmall.stack200.codemove_faceprocfarmovah,0moval,2;选择显示方式为:80*25,黑白int10hmovcx,1;字符计数为1movdx,0;从(0,0)开始set_crsr:movah,2;移动光标到下一位置int10hmoval,2;显示“笑脸”movah,10int10hcalldelay;等待半秒钟subal,al;擦掉“笑脸”(空格的ASCII码为0)movah,10int10hincdh;移向下一行,下一列incdlcmpdh,25;最后一行否jneset_crsr.exitmove_faceendp;用INT1AH的功能0延迟0.5秒delayprocpushbxpushcxpushdxmovah,0int1ahadddx,9;加上延迟值(0.5/0.055)movbx,dx;不断检测BIOS的日历计数repea:int1ah;再取日历计数值cmpdx,bx;与延迟值比较jnerepeapopdxpopcxpopbxretdelayendpendmove_faceBIOS级软件接口概述BIOS基本输入输出系统是非常重要的一种软件接口,由一批子程序组成,负责管理系统内的输入输出设备,直接为DOS操作系统和应用程序提供底层设备驱动服务。大多数的驱动程序以软件中断的方式调用(称为BIOS设备服务例程DSR),少数BIOS的驱动程序由硬件中断调用。•每个BIOSDSR都与中断向量表中的一个中断向量有关,如BIOS视频服务的中断向量码为10H,并行打印机服务为17H。调用服务时,在AH寄存器中指定该数便可选择该功能。如果还有子功能,可以通过AL、BL寄存器选择子功能。除功能编号外,所有其他参数通过寄存器传入和传出BIOS,分别称为入口参数和出口参数。例如用下面程序,调用10H视频服务功能中的02H(光标设置功能)将视频页上的光标移到3行14列。•MOVAH,02H•MOVDH,3•MOVDL,14•INT10H表5-1常用BIOS服务功能BIOS服务功能号功能打印屏幕服务05H将当前视频页内容送到默认打印机视频服务10H为显示适配器提供I/O支持设备表服务11H返回BIOS加电自检(POST)检测的系统设备表内存容量服务12H返回POST例程检测到的可用基本内存容量软盘服务13H提供软盘的读、写、格式化、初始化、诊断硬盘服务13H提供硬盘的读、写、格式化、初始化、诊断串行通信服务14H为串行适配器提供字符输入/输出系统服务15H系统级子服务键盘服务16H为键盘提供I/O支持并行打印机服务17H为并行打印机提供I/O支持日期时间服务1AH设置、读取时间、日期、声源等视频服务功能列表视频服务功能功能说明00H设置视频方式01H设置正文方式光表尺寸02H设置光标位置03H读当前光标位置04H读光标位置05H选择新视频页06H当前页上卷07H当前页下卷08H从屏幕读字符/属性09H往屏幕写字符/属性0AH往屏幕写字符0BH设置颜色调色板0CH写像素0DH读像素0EH电传写入活动页0FH返回视频状态10H设置调色板/颜色寄存器11H加载字符发生器12H其它选择13H写字符串14H~19H保留1AH读/写显示组合码1BH返回功能/状态信息1CH保存/恢复视频状态INT10H视频服务视频服务由INT10H来启动,包括许多子功能,见上表。通过AH寄存器选择视频服务功能,子功能通过AL寄存器或BL寄存器选择。下面几条规则适用于视频服务功能。(1)待写的字符或像素值一般在AL寄存器中传递。(2)功能调用保存BX、CX、DX及段寄存器。其它寄存器的内容(特别是SI、DI)不保存。(3)X坐标(列号)在CX(图形功能)中或DL(正文功能)中传递。(4)显示页在BH中传递,显示页从零开始计数。•下面的子程序利用BIOS视频服务的AH=0CH子功能实现写象素点。调用子程序之前,需要用DX保存行号,CX保存列号,AL保存颜色值,这是0CH子功能要求的。SETPIXELPROCNEARPUSHAXMOVAH,0CHINT10HPOPAXSETPIXELENDP