磁盘引导程序原理及简介

一、介绍

  • 系统开机或者重启
    1. BIOS 加电自检 ( Power On Self Test -- POST )。BIOS执行内存地址为 FFFF:0000H 处的跳转指令,跳转到固化在ROM中的自检程序处,对系统硬件(包括内存)进行检查。
    2. 读取主引导记录(MBR)。当BIOS检查到硬件正常并与 CMOS 中的设置相符后,按照 CMOS 中对启动设备的设置顺序检测可用的启动设备。BIOS将相应启动设备的第一个扇区(也就是MBR扇区)读入内存地址为0000:7C00H 处。
    3. 检查0000:7DFEH-0000:7DFFH(MBR的结束标志位)是否等于55AAH,若不等于则转去尝试其他启动设备,如果没有启动设备满足要求则显示"NO ROM BASIC"然后死机。
    4. 当检测到有启动设备满足要求后,BIOS将控制权交给相应启动设备。启动设备的MBR将自己复制到0000:0600H处, 然后继续执行。
    5. 根据MBR中的引导代码启动引导程序。
引导程序

二、几个问题

  • 为什么需要磁盘引导程序


为什么需要磁盘引导程序而不是直接载入操作系统?或许是因为历史原因,BIOS最初是为最原始的8位PC所创,8位的PC磁盘很小,所以BIOS只能先载入磁盘引导程序然后通过磁盘引导程序导入操作系统。

  • 磁盘引导程序为什么要从1扇区,0磁头,0磁道加载到7c00H处


“引导程序加载器--int19”。由于BIOS加载磁盘引导程序时需要调用系统中断int19来加载引导程序,而这个中断指定了将磁盘1扇区,0磁头,0磁道加载到7c00H处。

  • 磁盘引导程序为什么最大只能是512字节


“A bootstrap must be exactly512 bytes long because of the two byte check and the one sector limitation.”
“一个引导程序必须为512字节,因为他的大小有一个扇区的限制,最后两个字节需要设置为'0xAA55'。”

  • 磁盘引导程序为什么是16位


因为DOS系统是16位,X86系统都向后兼容引导时的16位模式。

转载于:https://www.cnblogs.com/hualiu0/p/5743864.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值