1. BIOS
当PC加电,BIOS会进行自检,创建中断向量、设置寄存器,并根据BIOS中的设置,判断指定存储介质的主引导扇区的最后两个字节是否为0xAA55。如果是,则将该扇区载入到地址LOADOFF(0x7C00)处,并开始执行。在载入之后,开始执行之前内存的分布如下:
0x00000~0x003FF : 中断向量表
0x00400~0x004FF : BIOS数据区
0x00500~0x07BFF : 自由内存区
0x07C00~0x07DFF : 引导程序加载区
0x07E00~0x9FFFF : 自由内存区
0xA0000~0xBFFFF : 显存区
0xC0000~0xFFFFF : BIOS中断处理程序区
2. 主引导分区(masterboot.s)
masterboot.s的代码存放在主引导扇区中,会将自身拷贝到地址BUFFER(0x0600)处并跳转到那里开始执行。该段代码会通过搜索分区表查找出活动分区,并将其主引导扇区的代码拷贝到地址LOADOFF(0x7C00)处并执行。由此可知,其主要的操作:
1)查找活动分区
2)载入活动分区的主引导扇区(通过 BIOS int 13中断)