天天看点

BIOS是如何从软盘加载系统引导程序的

当计算机电源被打开时,它会进行加点自检(POST),然后寻找启动盘,如果是选择从软盘启动,计算机就会检查软盘的0面0磁道1扇区,如果发现它以0xAA55(假设我们把此扇区看做一个字符数组sector[]的话,那么此结束标志相当于sector[510]=0x55,且sector[511]=0xAA)结束,则BIOS认为它是一个引导扇区,也就是我们说的Boot Sector。当然,一个正确的Boot Sector除了以0xAA55结束之外,还应该包含一段少于512的执行码。

一旦BIOS发现了Boot Sector,就会将这512B的内容装载到内存的0000:7C00处,然后跳转到0000:7C00处,将控制器彻底交给这段引导代码。到此为止,计算机不再由BIOS中固有的程序来控制,而变成由操作系统的一部分来控制。

参考书目:《自己动手写操作系统》