jkl666 发表于 2013-11-29 11:11:01

内存地址分类的问题

比如:B8000H~BFFFFH的内存地址空间是彩色字符模式的显示缓冲区,那别的地址,是哪开始分的,作用是什么。求教。
或给个资料名称。或地址都行。。度娘没找到。

jkl666 发表于 2013-11-29 11:25:32

答: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存储器。
下面是百科:
http://baike.baidu.com/link?url=9OEC9p1IbxW3am-gWcFAy0DplPV783jQAONNd2dmZUrQTfTCYKCBN6AiEZcJIBfM
这里需要明确的是,我们讨论的不同内存的概念是建立在寻址空间上的。IBM推出的第一台PC机采用的CPU是8088芯片,它只有20根地址线,也就是说,它的地址空间是1MB。
PC机的设计师将1MB中的低端640KB用作RAM,供DOS及应用程序使用,高端的384KB则保留给ROM、视频适配卡等系统使用。从此,这个界限便被确定了下来并且沿用至今。低端的640KB就被称为常规内存即PC机的基本RAM区。保留内存中的低128KB是显示缓冲区,高64KB是系统BIOS(基本输入/输出系统)空间,其余192KB空间留用。从对应的物理存储器来看,基本内存区只使用了512KB芯片,占用0000至7FFFF这512KB地址。显示内存区虽有128KB空间,但对单色显示器(MDA卡)只需4KB就足够了,因此只安装4KB的物理存储器芯片,占用了B0000至B0FFF这4KB的空间,如果使用彩色显示器(CGA卡)需要安装16KB的物理存储器,占用B8000至BBFFF这16KB的空间,可见实际使用的地址范围都小于允许使用的地址空间。

jkl666 发表于 2013-11-29 15:32:50


显示器类型显示模式缓冲区段地址缓冲区长度显示页数
MDA文本 B000h4K1
CGA文本 B800h16K4/8
图形 B800h16K1
HGA图形 B000h64K1
EGA单色 B000h可变 可变
文本 B800h可变 可变
图形 A000h可变 可变
MCGA文本 B800h32K8
图形 A000h64K1
VGA单色 B000h可变 可变
文本 B800h可变 可变
图形 A000h可变 可变

页: [1]
查看完整版本: 内存地址分类的问题