内存空间问题
2011-01-03 19:45
176 查看
本文章转自:http://www.oldlinux.org/oldlinux/viewthread.php?tid=3451
上世纪八十年代初IBM公司刚推出IBM PC机时,所使用的8088 CPU 外部地址总线是20位的,共可寻址内存范围 0-1MB。
0 - 640KB (640BK)是实际所含RAM内存总容量;
640KB - 960KB (320KB)用于显示卡等外设卡上内存的寻址;
960KB - 1024KB ( 64KB)用于存放ROM BIOS程序。
当加电时,CPU会自动将执行指针设置成0xffff0,该地址正好位于ROM BIOS中。此处存放着一个跳转指令,开始执行BIOS程序。
随着PC技术的发展,采用了80X86 CPU,内存容量也不断增大,地址线也从20位扩展到32位(32机)。但为了与最早的PC机在系统软件一级起就兼容,上述保留地址范围仍然没有改动(只是在实际应用环境中ROM BIOS可以对这些地址范围实现动态映射等方式进行“移动”)。例如为了方便起见,目前的Linux系统中通常仍然跳开物理内存最前段的1MB内存而从第2MB开始加载内核。。。。。
2. 启动扇区
启动扇区有两种,一种是位于硬盘第1个扇区上的引导扇区,它是整个硬盘的主引导扇区。其中包含有分区表。另一种是各个分区的第1个扇区,软盘系统就象硬盘上的一个分区。它只引导启动本分区的操作系统。bootsect不是主引导扇区代码而是分区的引导代码。在编程时为了控制其大小正好为512字节,通常采用汇编语言的“定位”前导码来指定代码或数据位置,例如我们使用.org命令如下定义:
.org 511
db 0x55, 0xaa
这样就能保证这两个标志字节是扇区的最后两个字节。
上世纪八十年代初IBM公司刚推出IBM PC机时,所使用的8088 CPU 外部地址总线是20位的,共可寻址内存范围 0-1MB。
0 - 640KB (640BK)是实际所含RAM内存总容量;
640KB - 960KB (320KB)用于显示卡等外设卡上内存的寻址;
960KB - 1024KB ( 64KB)用于存放ROM BIOS程序。
当加电时,CPU会自动将执行指针设置成0xffff0,该地址正好位于ROM BIOS中。此处存放着一个跳转指令,开始执行BIOS程序。
随着PC技术的发展,采用了80X86 CPU,内存容量也不断增大,地址线也从20位扩展到32位(32机)。但为了与最早的PC机在系统软件一级起就兼容,上述保留地址范围仍然没有改动(只是在实际应用环境中ROM BIOS可以对这些地址范围实现动态映射等方式进行“移动”)。例如为了方便起见,目前的Linux系统中通常仍然跳开物理内存最前段的1MB内存而从第2MB开始加载内核。。。。。
2. 启动扇区
启动扇区有两种,一种是位于硬盘第1个扇区上的引导扇区,它是整个硬盘的主引导扇区。其中包含有分区表。另一种是各个分区的第1个扇区,软盘系统就象硬盘上的一个分区。它只引导启动本分区的操作系统。bootsect不是主引导扇区代码而是分区的引导代码。在编程时为了控制其大小正好为512字节,通常采用汇编语言的“定位”前导码来指定代码或数据位置,例如我们使用.org命令如下定义:
.org 511
db 0x55, 0xaa
这样就能保证这两个标志字节是扇区的最后两个字节。
相关文章推荐
- eclipse中JVM的内存问题,解决堆空间不足的问题
- 《C++中类对象的内存布局和占用空间》《C++ 类里面,函数占用存储空间问题 》
- JAVA中引用本身占用内存空间的问题
- JAVA中引用本身占用内存空间的问题
- 常量指针运用, 指针和数组名的赋值,以及各自的内存空间问题 浅谈 !
- 面试中关于C++中的类,结构体,enum,字符变量等所占内存空间问题总结
- 32位程序超过2G内存空间寻址问题
- C++中 没有数据成员的类的对象所占的内存空间大小问题
- C# 使用 StructLayoutAttribute 时 C# /C++ 内存空间分配与成员对齐问题
- 关于根据指针测定一块内存所占空间大小的问题
- 处理win8操作系统C盘爆满或者C盘空间内存越来越小的问题
- 数组越界造成的其相邻的数组的内存空间被破坏的严重问题。
- C语言中指针占据内存空间问题
- 视频解码器和render之间增加一个内容透传的filter,需要处理颜色空间的差异及显卡内存自动对齐问题
- [置顶] 记录一个指针问题(内存空间的初始化)
- 越深入java 就觉得java做得越烂,java设计问题 之 : 对象占用内存空间设计
- 【经典面试题】有关指针、内存空间如何申请调用的问题
- c++ 类中的成员函数在内存空间的分配问题
- C语言中指针占据内存空间问题
- JAVA中引用本身占用内存空间的问题