内存空间问题

本文章转自: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
这样就能保证这两个标志字节是扇区的最后两个字节。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值