哪位高手能给小弟我讲一下实模式下的1M内存是怎么分配的啊
谁能给我讲一下实模式下的1M内存是如何分配的啊?
谁能给我讲一下实模式下的1M内存是如何分配的啊?
------解决方案--------------------
网上找的:
0x 0 0 0 0 0
|
| 10x64K=640K; 基本内存
|
0x 9 F F F F
0x A 0 0 0 0
|
| 2x64K=128K; 作为显存使用
|
0x B F F F F
0x C 0 0 0 0
|
| 4x64K=264K; 由bios使用,地址如何利用由其自己决定
|
0x F F F F F
而通常情况下,bios对属于自己的地址空间的划分方式如下:
0x C 0 0 0 0
|
| 0.5X64k=32k; 显卡bios使用
|
0x C 7 F F F
0x C 8 0 0 0
|
| 0.25x64K=16K IDE控制器bios使用
|
0x C B F F F
.
.
.
.
0x F 0 0 0 0
|
| 1x64K=64K; 系统bios使用
|
0x F F F F F
也就是说:C0000H~FFFFFH则被保留给BIOS使用,其中系统BIOS一般占用了最后的64KB或更多一点的空间,显卡BIOS一般在C0000H~C7FFFH处,IDE控制器的BIOS在C8000H~CBFFFH处。
基本内存的分配方式如下(由bios分配):
0x 0 0 0 0 0
|
| 1K 中断向量表 每一项占领4字节 共256项
|
0x 0 0 3 F F
0x 0 0 4 0 0
|
| 256字节 bios数据区
|
0x 0 0 4 F F
0x 0 0 5 0 0
|
| 自由内存区 但0x07C00-0x07DFF (512字节)为引导程序加载区
|
0x 9 F F F F
谁能给我讲一下实模式下的1M内存是如何分配的啊?
------解决方案--------------------
网上找的:
0x 0 0 0 0 0
|
| 10x64K=640K; 基本内存
|
0x 9 F F F F
0x A 0 0 0 0
|
| 2x64K=128K; 作为显存使用
|
0x B F F F F
0x C 0 0 0 0
|
| 4x64K=264K; 由bios使用,地址如何利用由其自己决定
|
0x F F F F F
而通常情况下,bios对属于自己的地址空间的划分方式如下:
0x C 0 0 0 0
|
| 0.5X64k=32k; 显卡bios使用
|
0x C 7 F F F
0x C 8 0 0 0
|
| 0.25x64K=16K IDE控制器bios使用
|
0x C B F F F
.
.
.
.
0x F 0 0 0 0
|
| 1x64K=64K; 系统bios使用
|
0x F F F F F
也就是说:C0000H~FFFFFH则被保留给BIOS使用,其中系统BIOS一般占用了最后的64KB或更多一点的空间,显卡BIOS一般在C0000H~C7FFFH处,IDE控制器的BIOS在C8000H~CBFFFH处。
基本内存的分配方式如下(由bios分配):
0x 0 0 0 0 0
|
| 1K 中断向量表 每一项占领4字节 共256项
|
0x 0 0 3 F F
0x 0 0 4 0 0
|
| 256字节 bios数据区
|
0x 0 0 4 F F
0x 0 0 5 0 0
|
| 自由内存区 但0x07C00-0x07DFF (512字节)为引导程序加载区
|
0x 9 F F F F