磁盘分区 MBR

MBR是主引导记录,它存在于整个磁盘的最开始的那个扇区,地址为0号扇区,此扇区一般为512字节大小。
MBR扇区的内容是:

内容 说明
前446字节 引导程序及参数
中间64字节 分区表
最后2字节 0x55,0xaa

我们可以使用工具winhex软件打开一个磁盘,查看MBR内容。
1600411149261

在MBR中存储的引导程序,为的是从BISO中接过系统的控件权,即处理器使用权。MBR对应的这512字节在当BISO即将释放处理器的使用权前,将此512字节复制到物理内存的0x7c00位置处,然后跳转到此位置执行,这样BIOS引导完成,进行MBR引导。

MBR程序主流程

程序流程:
1 将程序代码由0:7C00H移动到0:0600H(注,BIOS把MBR放在0:7C00H处)
2 搜索可引导分区,即80H标志
成功:goto 3
失败:跳入ROM BASIC
无效分区表:goto 5
3 读引导扇区到7C00
失败:goto 5
成功:goto 4
4 验证引导扇区最后是否为55AAH
失败:goto 5
成功:goto 6
5 打印错误进入无穷循环
6 跳到0:7C00H进行下一步启动工作


CPU加电启动过程

在CPU上电之后,若由硬盘启动,则BIOS将硬盘的主引导记录(位于0柱面、0磁道、1扇区)读入7C00处
然后将控制权交给主引导代码。主引导代码的任务包括:

  1. 扫描分区表,找到一个激活(可引导)分区;
  2. 找到激活分区的起始扇区;
  3. 将激活分区的引导扇区装载到内存7C00处;
  4. 将控制权交给引导扇区代码;

如果主引导代码无法完成上述任务,它将显示以下错误信息之一:

  • No active partition.
  • Invalid partition table.
  • Error loading operating system.
  • Missing operating system.

机器加电或按reset键后都要进行系统复位,复位后CS=FFFFH,IP=0000H,那么自然就从FFFF:0000H
处开始执行指令,这个地方只有一条JMP指令跳转到系统自检程序处,系统自检完成后把软盘的第一
个扇区(如果由软盘启动)或者硬盘的第一个扇区,即MBR扇区(如果由硬盘启动)读入到0:7C00H处
然后把控制权交出,从0:7C00H处继续执行。

取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by bytekits.com,汇天下文字,成非凡梦想!!!