計算機加電後執行的第一條指令

2021-06-18 16:41:03 字數 1397 閱讀 8791

第一步: 當我們按下電源開關時,電源就開始向主機板和其它裝置供電,此時電壓還不太穩定,主機板上的控制晶元組會向cpu發出並保持乙個reset(重置)訊號,讓cpu內部自動恢復到初始狀態,但cpu在此刻不會馬上執行指令。當晶元組檢測到電源已經開始穩定供電了(當然從不穩定到穩定的過程只是一瞬間的事情),它便撤去reset訊號(如果是手工按下計算機面板上的reset按鈕來重啟機器,那麼鬆開該按鈕時晶元組就會撤去reset訊號),cpu馬上就從位址ffff0h處開始執行指令,從前面的介紹可知,這個位址實際上在系統bios的位址範圍內,無論是award bios還是ami bios,放在這裡的只是一條跳轉指令,跳到系統bios中真正的啟動**處。 

第二步: 系統bios的啟動**首先要做的事情就是進行post(power-on self test,加電後自檢),post的主要任務是檢測系統中一些關鍵裝置是否存在和能否正常工作,例如記憶體和顯示卡等裝置。由於post是最早進行的檢測過程,此時顯示卡還沒有初始化,如果系統bios在進行post的過程中發現了一些致命錯誤,例如沒有找到記憶體或者記憶體有問題(此時只會檢查640k常規記憶體),那麼系統bios就會直接控制喇叭發聲來報告錯誤,聲音的長短和次數代表了錯誤的型別。在正常情況下,post過程進行得非常快,我們幾乎無法感覺到它的存在,post結束之後就會呼叫其它**來進行更完整的硬體檢測。 

第三步: 接下來系統bios將查詢顯示卡的bios,前面說過,存放顯示卡bios的rom晶元的起始位址通常設在c0000h處,系統bios在這個地方找到顯示卡bios之後就呼叫它的初始化**,由顯示卡bios來初始化顯示卡,此時多數顯示卡都會在螢幕上顯示出一些初始化資訊,介紹生產廠商、圖形晶元型別等內容,不過這個畫面幾乎是一閃而過。系統bios接著會查詢其它裝置的bios程式,找到之後同樣要呼叫這些bios內部的初始化**來初始化相關的裝置。    

第四步: 查詢完所有其它裝置的bios之後,系統bios將顯示出它自己的啟動畫面,其中包括有系統bios的型別、序列號和版本號等內容。 

第五步: 接著系統bios將檢測和顯示cpu的型別和工作頻率,然後開始測試所有的ram,並同時在螢幕上顯示記憶體測試的進度,我們可以在cmos設定中自行決定使用簡單耗時少或者詳細耗時多的測試方式。 

第六步: 記憶體測試通過之後,系統bios將開始檢測系統中安裝的一些標準硬體裝置,包括硬碟、cd-rom、串列埠、並口、軟碟機等裝置,另外絕大多數較新版本的系統bios在這一過程中還要自動檢測和設定記憶體的定時引數、硬碟引數和訪問模式等。  

第七步: 標準裝置檢測完畢後,系統bios內部的支援即插即用的**將開始檢測和配置系統中安裝的即插即用裝置,每找到乙個裝置之後,系統bios都會在螢幕上顯示出裝置的名稱和型號等資訊,同時為該裝置分配中斷、dma通道和i/o埠等資源。 

第八步: 到這一步為止,所有硬體都已經檢測配置完畢了,多數系統bios會重新清屏並在螢幕上方顯示出乙個**,其中概略地列出了系統中安裝的各種標準硬體裝置,以及它們使用的資源和一些相關工作引數。

CPU加電後第一條指令

當我們按下電源開關時,電源就開始向主機板和其它裝置供電,此時電壓還不太穩定,主機板上的控制晶元組會向cpu發出並保持乙個reset 重置 訊號,讓 cpu內部自動恢復到初始狀態,但cpu在此刻不會馬上執行指令。當晶元組檢測到電源已經開始穩定供電了 當然從不穩定到穩定的過程只是一瞬間的事情 它便撤去r...

cpu執行第一條指令時情形

執行的第一條指令不在記憶體中,眾所周知,記憶體是由 組成的 而 不斷電,可以儲存資訊,一旦斷電,中的資訊將會丟失,所以 要執行的第一條指令被固化在 中 以前 年代,由於記憶體是 的,所以 被編址在 的最後的 中,所以它的段位址是0xffff0,這樣就不至於不 分成兩個部分,就是將 設定成0xf000...

oracle排序後的第一條記錄

該查尋語句沒有經過任何的優化,因為oracle沒有sql的top關鍵字,但是有乙個rownum的列,因此,可以通過rownum來進行查詢。oracle的關於rownum的參考手冊裡面提到了分析函式定義。selectt.from selectk.rownum row fromtablewhere.or...