DOS内存分配

由于DOS是16位系统,最大地址寻址空间为:1MB
而寄存器所提供的最大容量只有2个字节 = 16位
所以最大的寻址空间为:0000 - FFFF

为了满足寻址范围, 在原有的基础之上*16(即2^4) , 因此最终的寻址范围可以在:
00000 - FFFFF空间范围内,即1MB的寻址空间

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

|00000-003FFh| 中断向量表
|00400-004FFh| BIOS 数据区

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

|00500-9FFFFh| 不到640KB(实际上只有638.7KB)的内存为操作系统和应用程序所
               能够使用的应用程序无法使用640KB以外的内存(即"640KB限制");
               而DOS操作系统又占据了期间低端的一部分内存, 最后剩下600KB
               左右的内存给应用程序使用。若内存中还存有驻留程序,
               那么应用程序还要和这些TSR程序共同分享这段内存空间。

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

此时系统资源在内存中的分配结果如下:
|A0000-FFFFFh| 高端内存
    |A0000-AFFFFh| 图形模式视频缓冲区
    |B0000-B7FFFh| 单色字符模式视频缓冲区
    |B8000-BFFFFh| 彩色字符模式视频缓冲区
    |C0000-C7FFFh| VGA BIOS地址
    |C8000-CFFFFh| 硬盘BIOS地址

    |D0000-D7FFFh| 网络BIOS地址
    |D8000-DFFFFh| 声音、通讯BIOS地址
    |E0000-F0000h| 保留区
    |F0000-FFFFFh| 系统BIOS

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

你可能感兴趣的:(Mixed)