關(guān)于BIOS的入口地址0xFFFF0的介紹

一直都說開機加電之后,將CS設(shè)置為0xFFFF,IP設(shè)置為0x0000,這樣組成的地址就是0xFFFF0,而這個就是BIOS的入口地址,之后CPU讀取這個地址的代碼,然后就巴拉巴拉的開始執(zhí)行下去了。
現(xiàn)在想知道這個地址0xFFFF0是在主板上呢,還是在內(nèi)存上。想著如果是統(tǒng)一編址的話,就可能是去讀取主板上的ROM,但是看書上的圖,有像是在RAM中,如果是在 內(nèi)存 中,那是什么時候,由哪段程序?qū)OM中的程序讀取到內(nèi)存中的。自己猜的話,應(yīng)該這個過程是固定的硬件實現(xiàn)的,將ROM中的所有內(nèi)容拷貝到內(nèi)存中最高位那一段中,之后,0xFFFF0就必然是指內(nèi)存中的地址了。
百度了一下,有篇文章就是說這個的。
640KB~1MB 上位內(nèi)存(這個區(qū)域的地址分配給ROM,相應(yīng)的384KB的RAM被屏蔽掉。所謂的影子內(nèi)存技術(shù),就是把ROM內(nèi)容讀取到對應(yīng)地址的RAM中,以后系統(tǒng)就從RAM中讀取數(shù)據(jù),而不是從原來的ROM讀取數(shù)據(jù),從而提高速度。)
1MB~ 擴展內(nèi)存
注:
Shadow RAM也稱為"影子內(nèi)存",是為了提高計算機系統(tǒng)效率而采用的一種專門技術(shù),所使用的物理芯片仍然是CMOS DRAM(動態(tài)隨機存取存儲器,參閱本書后面的內(nèi)容)芯片。Shadow RAM占據(jù)了系統(tǒng)主存的一部分地址空間。其編址范圍為C0000~FFFFF,即為1MB主存中的768KB~1024KB區(qū)域。這個區(qū)域通常也稱為內(nèi)存 保留區(qū),用戶程序不能直接訪問。Shadow RAM的功能就是是用來存放各種ROM BIOS的內(nèi)容。也就是復制的ROM BIOS內(nèi)容,因而又它稱為ROM Shadow,這與Shadow RAM的意思一樣,指得是ROM BIOS的"影子"。現(xiàn)在的計算機系統(tǒng),只要一加電開機,BIOS信息就會被裝載到Shadow RAM中的指定區(qū)域里。由于Shadow RAM的物理編址與對應(yīng)的ROM相同,所以當需要訪問BIOS時,只需訪問Shadow RAM而不必再訪問ROM,這就能大大加快計算機系統(tǒng)的運算時間。通常訪問ROM的時間在200ns左右,訪問DRAM的時間小于100ns、60ns, 甚至更短。
在計算機系統(tǒng)運行期間,讀取BIOS中的數(shù)據(jù)或調(diào)用BIOS中的程序模塊的操作將是相當頻繁的,采用了Shadow RAM技術(shù)后,無疑大大提高了工作效率。
386 之前與386之后,這個地址是不同的,但都在系統(tǒng)內(nèi)存的最高 地址段。在386下為 FFFFFFF0H。因為CS段是16位的,EIP是32位的,為了得到一個32位地址,386給CS段增加了幾個字段,這是隱藏的字段,系統(tǒng)可以通過 GDT,IDT將更改段選擇子的字段,此時地址轉(zhuǎn)換就不是 段地址左移4位 + 偏移地址,而是CS的Base字段+偏移地址。
下面是一個例子
當系統(tǒng)加電后,系統(tǒng)會復位。此時在386以前的系統(tǒng)下CS=F000H,IP=FFF0H,Bios地址為段地址左移4位 + 偏移地址擠即 F0000H + FFF0H = FFFF0H
在386以前系統(tǒng)可尋址范圍為1MB即 00000H~FFFFFH
在386下CS=F000H,IP=FFF0H,這是不變的,但是這時,CScs中的內(nèi)容為:
Selector = F000H (這個就是你可以看到的那部分內(nèi)容)
這時隱藏的部分是不能用的,因為在實地址模式下,所以Bios地址與386以前的地址一樣,
但是386可尋址范圍為4GB 即 00000000H~FFFFFFFFH,如果以這個地址(000FFFF0H)作為Bios地址的話,系統(tǒng)內(nèi)存不連續(xù),因此,386使用硬件置1的方式將A20~A31地址線置1,就變成FFFFFFF0H,并以此作為Bios地址。
這個置1的結(jié)果是,隱藏的部分的一個字段Base=FFFF0000H,這個操作不是由更改描述符表實現(xiàn)的,因為還沒有進入保護模式,而且描述符表還沒有 建立。這是硬件實現(xiàn)的,而且當進行一次段間跳轉(zhuǎn)后,由于置1的結(jié)果就不能保存,因為硬件設(shè)計是從會將其置0,所以當執(zhí)行完FFFFFFF0H處的指令 jmp ,Base=00000000H,這時,Bios就使用1M以下內(nèi)存。
關(guān)于入口地址的形成,有的文章上說是CS 0xFFFF和IP 0x0000的組成,有的文章上說是 CS 0xF000 和IP 0xFFF0的組合,我猜可能是不同硬件的初始化不同,只要最后形成的入口地址是 0xFFFF0就行了。如果不是我猜的那樣,那回頭在來補充吧。
相關(guān)文章
- BIOS(基本輸入輸出系統(tǒng))是一種固件,它位于計算機的主板上,負責初始化硬件和啟動操作系統(tǒng),它有什么作用?密碼鎖死該怎么結(jié)局餓呢?詳細請看下文介紹2024-05-30
bios如何恢復默認設(shè)置?bios恢復默認設(shè)置的方法
bios如何恢復默認設(shè)置?BIOS是計算機重要的基礎(chǔ)設(shè)置,想要恢復默認設(shè)置該如何讓操作呢,下面就跟隨小編一起看看2020-12-04- BIOS對計算機基礎(chǔ)設(shè)置十分重要,現(xiàn)在大家都用U盤來裝系統(tǒng),有的人初次接觸裝機不明白怎么設(shè)置。由于不同的主板BIOS設(shè)置也不同,有的用戶找不到USB-HDD選項,U盤裝系統(tǒng)首先2020-11-25
如何刷新bios?在windows系統(tǒng)上刷新bios的方法
現(xiàn)在人們使用電腦很少回去更新主板bios,其實刷新bios可以帶來新的功能和CPU支持,現(xiàn)在技術(shù)發(fā)展那么快,為了保證更好的兼容性,刷新主板bios是非常有必要的2020-11-25Secure Boot什么意思?BIOS中Secure Boot灰色無法更改解決方法詳解
在電腦Bios設(shè)置中,有一項“Secure Boot”相關(guān)設(shè)置,很多朋友不知道Secure Boot什么意思,也不知道該如何設(shè)置。下面本文就來談?wù)凷ecure Boot設(shè)置相關(guān)的知識,需要的朋友可2018-03-22- 華碩電腦開機時顯示一連串字符并且沒辦法正常進入系統(tǒng)中,多次重啟都出現(xiàn)這樣的狀況,到底是怎么回事?下面小編給大家分享電腦進入bios關(guān)閉網(wǎng)卡的技巧,需要的朋友參考下吧2017-11-23
- 這篇文章主要介紹了惠普臺式筆記本一體機電腦BIOS中文版對照圖解介紹,需要的朋友可以參考下2017-09-02
電腦BIOS怎么設(shè)置光盤啟動 三種類型BIOS設(shè)置光驅(qū)啟動的圖文詳解教程
怎么設(shè)置電腦BIOS讓電腦使用光盤啟動呢?如何使用光盤安裝電腦系統(tǒng)?BIOS怎么修改為光盤啟動?本文將給大家介紹三種常見類型的BIOS的光盤啟動設(shè)置方法,下面請看具體操作步2017-09-02- 對與經(jīng)常玩電腦的朋友來說,對與BIOS、COMS可能有點陌生,對于經(jīng)常修電腦的朋友來說COMS可能會經(jīng)常接觸,今天我們來簡單的說下coms設(shè)置圖解,感興趣的朋友一起看看吧2017-08-29
- 映泰主板是非常多用戶使用的主板,但是也是有很多用戶不知道映泰主板bios設(shè)置的方法。今天小編就把映泰主板bios設(shè)置圖解教程分享給大家,感興趣的朋友參考下吧2017-08-17