显存地址与内存地址是什么关系?

Author: 何宗琦 Date: 1997-01-01

#3  合肥工业大学林志远问:显示卡上显存与内存中A000:0000~BFFF:000F这一段区域是什么关系?SVGA的显示页共有几页?
  答:DOS系统规定内存空间编址中的A000:0000~BFFF:000F这一段区域用作显示缓冲区。说得明白一点,在这个区域中存放的数据就是屏幕显示的映象。修改这个内存区域的数据也就改变了屏幕上的显示内容,这种方法称为“直接写屏”。显示卡上的显存不管配置多少都只能占用这一段编址空间。
  该段编址空间大小为128KB,表一列出了常用显示卡所占用的显示缓冲区的地址范围。
  从表一中可以看出,不同的显示方式在这128KB中所占用的区域各不相同,每种显示方式都只使用了其中的一部分区域。例如在使用VGA方式时,其文本方式和低分辨率图形方式占用了B8000-BFFFF这32KB的区域,高分辨率图形方式占用A0000-AFFFF这64KB的区域。而B0000-B7FFF这32KB区域并没有使用。如果在Config.sys文件的Emm386.exe命令中加上参数I=B000-B7FF,这部分区域就可以作为UMB来使用,为你增加32KB的UMB存储器。
  另一个问题是如何在这样一个较小的显示缓冲区地址空间,对应较大的物理显示缓冲存储器,例如VGA的高分辨率模式占用了64KB空间,实际配置的物理显存可以是1MB或2MB,在这里采用了彩色位平面的存储结构,鉴于篇幅就不在此详细介绍了。
  至于VGA的显示页有几页的问题,要看你选择什么显示模式,不同显示模式的显示页数量是不同的。表二列出了不同显示模式下的显示页。