以下過程針對x86架構的系統(tǒng)。
在系統(tǒng)上電的時候,處理器的代碼段寄存器(CS)會變成0xF000,程序執(zhí)行指針(IP)會變成0xFFF0,BIOS程序會被加載到內存的位置CS:IP處,也就是CS*16+IP=0xFFFF0。因此處理器定位到BIOS的起始處開始執(zhí)行,BIOS的功能此處不再贅述,最終BIOS會讀取啟動分區(qū)的第一個扇區(qū)的512字節(jié)內容,這個扇區(qū)也叫做引導扇區(qū)。BIOS會將此扇區(qū)加載到0x7c00的內存位置處,并將控制前轉移到該地址執(zhí)行引導分區(qū)代碼。
過程總結如下:
上電 -> BIOS被加載到0xFFFF0起始的內存位置 -> 處理器從CS;IP=0xF000:0xFFF0位置開始執(zhí)行BIOS代碼 -> BIOS將引導扇區(qū)512字節(jié)記載到內存0x7c00位置 -> BIOS將代碼執(zhí)行控制轉移到CS:IP=0x0000:0x7c00的位置執(zhí)行引導扇區(qū)代碼。
如圖所示:

啟動過程