在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CS和IP從哪里開始執行代碼

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2022-07-25 08:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

來到我所在的工作車間,提取指令的小A、分析指令的小胖和負責結果回寫的老K都已經到了,就差執行指令的我了。

我們幾個各就各位,做起了準備工作。

“小A,報告一下各個寄存器的值”,我囑咐小A,這是我們每天開始工作前必做的檢查項。

每次一通電,咱們的電路就會啟動自檢工作,把所有的寄存器全部重置,如果哪里有異常的話,就會把錯誤記錄到EAX寄存器中,如果發現EAX的值不是0,那可就大事不好了。

“報告,寄存器已確認:”

EAX,EBX, ECX, ESI, EDI, EBP, ESP: 0x00000000

EFLAGS: 0x00000002

CS: 0xF000

EIP: 0xFFF0

······

看起來沒什么問題,尤其是CS和IP這兩個寄存器,決定著一會兒該從哪里開始執行代碼呢。

我們是一個64位的CPU,平時都是工作在保護模式下,使用虛擬地址來訪問內存,由廠里的內存管理單元MMU負責給轉換成真實的物理地址。

不過在剛剛開機的這會兒功夫,虛擬地址翻譯所需要的頁目錄、頁表這些信息都還沒準備好,MMU還沒法工作,這時候我們只能使用16位的寄存器,工作在實地址模式下,使用段+基址的方式來跟內存打交道,最多只能使用1MB的內存空間,實在是有點局促。

開始執行“大家都準備好了嗎,打起精神來,要準備開始今天的工作了哦!”

“Q哥,這剛剛通電,內存條那家伙應該還是一片空白吧,咱們要去執行哪里的指令啊?”,小A問到。

“這你不用擔心,在主板上,咱們CPU隔壁不遠處有個叫BIOS的伙計,是一個ROM芯片,咱們已經跟他約定好了,一通電他就映射到地址空間中,你盡管按照CS:IP(0xF000:0xFFF0)指向的地方開始取指令就對了,他會安排好的”

“原來是這樣”,小A點了點頭,似懂非懂的樣子。

正式開始干活了,小A熟練的從F000:FFF0處,也就是0xFFFF0處取到了第一條指令:jmp xxxx

好家伙,上來就是一個大跳轉,我們一下來到了BIOS那家伙地盤的中央,開始執行他準備的程序了。

接下來執行的這一堆指令我已經做過無數次了,對主板上各單位進行檢測,看看有沒有異常情況,還有初始化我們工作需要的中斷向量表等等,我早已經輕車熟路了。

“哥幾個忙著吶”,我們正忙的熱火朝天,發現有人在門口圍觀,回頭看去,原來是隔壁二號車間、五號車間、八號車間的幾個家伙。

“你們幾個這么閑,要不來幫我們干會兒活?”

“哎,你想得美,你們一號核是引導處理器(BSP),待遇比我們好,這開機啟動的活兒我們怎么能搶呢?”,二號車間的虎子陰陽怪氣的說到。

真是羨慕他們,比我們1號車間上班時間晚,每次都可以多睡會兒。

MBR我繼續執行BIOS中的代碼,一切檢查完畢,沒什么異常,要準備啟動操作系統大佬了。

接下來,我檢查了BIOS中配置的啟動順序,排在第一位的是硬盤兄弟。

a4d615c6-0bb3-11ed-ba43-dac502259ad0.png

于是我把硬盤老哥第0盤第0道第1扇區的內容讀取到了內存中的0x7C00位置,他們把這玩意叫做主引導記錄MBR,一共512個字節。

聽硬盤那哥們說,這是操作系統老大在安裝的時候,寫到他那里的。

他還告訴我,這個位置很重要,曾經就有病毒占據了這個位置,最后沒辦法只好重裝系統。

a4e4bd56-0bb3-11ed-ba43-dac502259ad0.png

MBR

讀取到了MBR后,還得檢查最后兩個字節必須是0x55和0xAA,看起來沒什么問題,是一個合法的MBR,我們又跳到了0x7C00的位置開始執行。

操作系統終于來到操作系統的地盤兒了,在操作系統的指示下,我們切換了工作模式,開始在保護模式下工作了!

剛剛切換到保護模式下,MMU仍然沒法做地址翻譯工作,我們還是只有直接使用物理地址跟內存聯系,所以得趕緊把頁目錄和頁表準備妥當才行。

忙活了一陣子之后,總算把需要的東西都弄好了,我激動的打開了內存分頁的開關,通知MMU部門開始工作,現在我們可以使用虛擬地址訪問內存了,這感覺棒多了!

a4fcc4d2-0bb3-11ed-ba43-dac502259ad0.png

這時,一旁圍觀的二號車間、五號車間、八號車間那幾個家伙見狀趕緊遛了回去,因為他們知道,馬上就該他們工作了。

我們繼續執行操作系統的代碼,給咱們CPU其他所有核都準備好了數據和指令,創建了多個線程出來,把他們也叫起來一起工作,咱們這個八核CPU終于全面開動起來,一下子熱鬧了不少。

再后來,不知執行了多少指令,創建了多少線程,才把操作系統老大完整的運行了起來,成功完成了這一次的啟動。

這就是通電后,我們CPU開始工作的日常,我已經記不清這是第多少次啟動了,也不知道,我們還能啟動多少次···

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    459

    文章

    52356

    瀏覽量

    438766
  • 寄存器
    +關注

    關注

    31

    文章

    5430

    瀏覽量

    123970
  • 代碼
    +關注

    關注

    30

    文章

    4894

    瀏覽量

    70456

原文標題:按下電源后的幾秒鐘,CPU在干嘛?

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何使用AMD Vitis HLS創建HLS IP

    本文逐步演示了如何使用 AMD Vitis HLS 來創建一個 HLS IP,通過 AXI4 接口存儲器讀取數據、執行簡單的數學運算,然后將數據寫回存儲器。接著會在 AMD Vivado Design Suite 設計中使用此
    的頭像 發表于 06-13 09:50 ?525次閱讀
    如何使用AMD Vitis HLS創建HLS <b class='flag-5'>IP</b>

    請問有CS1237的STM32驅動代碼嗎?

    您好,請問有CS1237的STM32驅動代碼嗎?能否發一份437944798@qq.com謝謝!!
    發表于 05-14 20:38

    DLP4500怎么確定投影儀開始投影的同時相機的c++代碼開始運行?

    投影儀通過trig1 鏈接相機,投影儀投圖同時觸發相機,相機采集圖像并傳回電腦,相機的代碼里需要添加dlp4500的api或sdk代碼嗎,怎么確定投影儀開始投影的同時相機的c++代碼
    發表于 02-18 07:16

    Profinet站轉EtherNet/IP站網關

    Profinet站轉EtherNet/IP站網關 SG-PN-EIP(S)-220 功能概述 本產品是PN(Profinet)和EtherNet/IP網關,使用數據映射方式工作。
    的頭像 發表于 01-21 17:16 ?405次閱讀
    Profinet<b class='flag-5'>從</b>站轉EtherNet/<b class='flag-5'>IP</b><b class='flag-5'>從</b>站網關

    怎么提升單片機代碼執行效率

    ? 提升單片機代碼執行效率需要從多個方面入手,包括代碼優化、硬件資源利用、編譯器設置、中斷處理優化以及其他技巧等。在實際應用中,需要根據具體需求和硬件條件綜合考慮這些因素,以實現最佳的性能表現。 ?
    的頭像 發表于 01-10 11:06 ?551次閱讀

    用于課題的無線轉速霍爾傳感器,新人應該哪里開始學習

    完全沒電路的基礎,但是課題上導師要求設計一款無線的霍爾轉速傳感器,電池供電然后通過無線技術去讀取傳感器上的轉速。想請教下各位大佬應該哪里開始學習比較好,或者是有現成的產品可以去模仿學習可以嗎
    發表于 01-08 10:36

    Java代碼之美,遵循樣式規范開始

    作者:京東零售 劉仲偉 在軟件開發的世界里,代碼不僅是程序的基石,更是程序員交流的通用語言。而Java,作為一門廣泛應用于企業級應用的編程語言,其代碼的可讀性和一致性對于項目的長期維護和團隊協作
    的頭像 發表于 11-27 11:42 ?542次閱讀
    Java<b class='flag-5'>代碼</b>之美,<b class='flag-5'>從</b>遵循樣式規范<b class='flag-5'>開始</b>

    EtherNet/IP站轉Profinet主站協議網關(JM-PNM-EIP)

    捷米特JM-PNM-EIP型網關是EtherNet/IP站轉Profinet主站工業級Profinet網關。?這種網關設備允許將EtherNet/IP主站網絡中的設備和Profinet
    的頭像 發表于 08-20 11:56 ?620次閱讀
    EtherNet/<b class='flag-5'>IP</b><b class='flag-5'>從</b>站轉Profinet主站協議網關(JM-PNM-EIP)

    EtherCAT站轉EtherNet/IP站協議網關(JM-EIP-ECAT)

    EtherNet/IP設備連接到EtherCAT網絡。 廣泛應用:在工業自動化領域,不同設備和系統可能采用不同的通信協議。EtherCAT站轉EtherNet/IP站協議網關可以將
    的頭像 發表于 08-15 17:30 ?818次閱讀
    EtherCAT<b class='flag-5'>從</b>站轉EtherNet/<b class='flag-5'>IP</b><b class='flag-5'>從</b>站協議網關(JM-EIP-ECAT)

    EtherNet/IP站轉Profinet站協議轉換網關(JM-PN-EIP)

    和EtherNet/IP網絡連接起來。 本網關連接到Profinet總線中做為站使用,連接到EtherNet/IP總線中做為
    的頭像 發表于 08-12 14:20 ?809次閱讀
    EtherNet/<b class='flag-5'>IP</b><b class='flag-5'>從</b>站轉Profinet<b class='flag-5'>從</b>站協議轉換網關(JM-PN-EIP)

    CS1237 / CS1238應用原理圖及STC的示例代碼

    CS1237 / CS1238應用原理圖及STC的示例代碼。 郵箱381005883@QQ.COM
    發表于 07-23 16:05

    XMC4800樣本站卡在DisableSyncManChannel中怎么解決?

    我一直在按照 XMC4800 EtherCAT Relax Kit 指南創建一個站設備示例。 我使用正確版本的 SSC 工具生成了從屬堆棧代碼,制作了必要的補丁,并執行了特定應用代碼
    發表于 07-23 07:50

    如何使用代理IP轉換國外IP

    IP
    jf_62215197
    發布于 :2024年07月17日 07:33:17

    如何服務器角度對ESP設備執行ping操作?

    如何服務器角度對 ESP 設備執行 ping 操作?我有 IP 為 192.168.0.1 的服務器和 IP 為 192.168.0.2 的根節點,其余非根節點的
    發表于 07-12 14:03

    使用靜態IP配置ESP8266,IP網關會自動更改為某些無效值,為什么?

    :192.168.1.254 但是當我打印 ip 配置時,我得到這個: IP:192.168.1.100 掩碼:255.255.255.0 毛重:255.255.255.127 有人可以告訴我或指出哪里出了問題嗎?是GW
    發表于 07-12 06:10
    主站蜘蛛池模板: 色色视频网 | 日本三黄色大 | 美女视频黄a视频免费全过程 | bt天堂在线最新版www | 国产三级在线观看视频 | 红怡院欧洲 | 久久久久琪琪免费影院 | 69日本xxxxxxxxx30 69日本xxxxxxxxx56 | 让她爽的喷水叫爽乱 | 亚洲丁香| 五月天丁香婷婷网 | 黄色片网站日本 | 天堂网站www天堂资源在线 | 欧美高清性色生活 | 国产―笫一页―浮力影院xyz | 手机亚洲第一页 | 色婷婷亚洲精品综合影院 | 夜夜想夜夜爽天天爱天天摸 | 日本内谢69xxxx免费 | 欧美性黑人极品1819hd | 欧美骚| 特黄aa级毛片免费视频播放 | 美女黄色在线看 | 日韩毛片免费视频 | 欧洲乱码专区一区二区三区四区 | 欧美一级一一特黄 | 在线种子资源网 | 特黄一级真人毛片 | 全黄毛片 | 正在播放亚洲一区 | a天堂中文在线 | 天天躁日日躁成人字幕aⅴ 天天躁夜夜躁 | 亚洲乱码卡一卡二卡三 | 色老头综合 | 丁香六月激情网 | 精品一区二区影院在线 | 不卡午夜 | 四虎精品免费国产成人 | 成人剧场 | 日韩欧美中文字幕在线视频 | 国内精品久久久久久久久野战 |