以下過(guò)程針對(duì)x86架構(gòu)的系統(tǒng)贺拣。
在系統(tǒng)上電的時(shí)候姨谷,處理器的代碼段寄存器(CS)會(huì)變成0xF000阅畴,程序執(zhí)行指針(IP)會(huì)變成0xFFF0盯滚,BIOS程序會(huì)被加載到內(nèi)存的位置CS:IP處定页,也就是CS*16+IP=0xFFFF0趟薄。因此處理器定位到BIOS的起始處開(kāi)始執(zhí)行,BIOS的功能此處不再贅述典徊,最終BIOS會(huì)讀取啟動(dòng)分區(qū)的第一個(gè)扇區(qū)的512字節(jié)內(nèi)容杭煎,這個(gè)扇區(qū)也叫做引導(dǎo)扇區(qū)。BIOS會(huì)將此扇區(qū)加載到0x7c00的內(nèi)存位置處卒落,并將控制前轉(zhuǎn)移到該地址執(zhí)行引導(dǎo)分區(qū)代碼羡铲。
過(guò)程總結(jié)如下:
上電 -> BIOS被加載到0xFFFF0起始的內(nèi)存位置 -> 處理器從CS;IP=0xF000:0xFFF0位置開(kāi)始執(zhí)行BIOS代碼 -> BIOS將引導(dǎo)扇區(qū)512字節(jié)記載到內(nèi)存0x7c00位置 -> BIOS將代碼執(zhí)行控制轉(zhuǎn)移到CS:IP=0x0000:0x7c00的位置執(zhí)行引導(dǎo)扇區(qū)代碼。
如圖所示: