汇编解析(4)-BIOS
下面以8086為例
1、(1)ROM占據(jù)著整個內(nèi)存空間頂端(高端)的64KB,物理地址范圍是:0xF0000-oxFFFF,里面固化了開機(jī)時要執(zhí)行的指令。
(2)DRAM占據(jù)內(nèi)存空間頂端(低端)的640KB,物理地址范圍是:0x00000~ox9FFFF.
(3)中間部分給了其他外圍設(shè)備。
2、
(1)復(fù)位和啟動時,CS=0xFFFF,IP=0x0000,它取的第一條指令位于物理地址0xFFFF0,位于ROM區(qū)域。
(2)但是處理器取指令從低到高取地址,這意味著,從0xFFFF0到0xFFFFF,空間已經(jīng)不多了,16字節(jié)而已。
(3)如何利用這僅有的16字節(jié),完成整個系統(tǒng)的啟動,它是開機(jī)時需要執(zhí)行的指令。只能安放一個JMP指令,跳轉(zhuǎn)到ROM的較低地址處開始取指令,比如:
3、基于ROM空間仍有限,只能完成基本輸入輸出,所以稱為BIOS
ROM-BIOS完成使命后,從外存取指令數(shù)據(jù)開始執(zhí)行,啟動操作系統(tǒng)。
如果從硬盤啟動,則ROM-BIOS讀取主引導(dǎo)扇區(qū)內(nèi)容,加載到0x0000:0x7c00處,這個物理地址0x7c000(段地址左移4位加偏移地址,充分利用20位地址線)非常重要,是硬盤主引導(dǎo)扇區(qū)啟動系統(tǒng)的第一條指令所在內(nèi)存地址。
總結(jié)
以上是生活随笔為你收集整理的汇编解析(4)-BIOS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python精要(71)-VMDK操作(
- 下一篇: Redis缓存那点破事 , 绝杀面试官