国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CS和IP從哪里開(kāi)始執(zhí)行代碼

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

掃碼添加小助手

加入工程師交流群

來(lái)到我所在的工作車間,提取指令的小A、分析指令的小胖和負(fù)責(zé)結(jié)果回寫的老K都已經(jīng)到了,就差執(zhí)行指令的我了。

我們幾個(gè)各就各位,做起了準(zhǔn)備工作。

“小A,報(bào)告一下各個(gè)寄存器的值”,我囑咐小A,這是我們每天開(kāi)始工作前必做的檢查項(xiàng)。

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

“報(bào)告,寄存器已確認(rèn):”

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

EFLAGS: 0x00000002

CS: 0xF000

EIP: 0xFFF0

······

看起來(lái)沒(méi)什么問(wèn)題,尤其是CS和IP這兩個(gè)寄存器,決定著一會(huì)兒該從哪里開(kāi)始執(zhí)行代碼呢。

我們是一個(gè)64位的CPU,平時(shí)都是工作在保護(hù)模式下,使用虛擬地址來(lái)訪問(wèn)內(nèi)存,由廠里的內(nèi)存管理單元MMU負(fù)責(zé)給轉(zhuǎn)換成真實(shí)的物理地址。

不過(guò)在剛剛開(kāi)機(jī)的這會(huì)兒功夫,虛擬地址翻譯所需要的頁(yè)目錄、頁(yè)表這些信息都還沒(méi)準(zhǔn)備好,MMU還沒(méi)法工作,這時(shí)候我們只能使用16位的寄存器,工作在實(shí)地址模式下,使用段+基址的方式來(lái)跟內(nèi)存打交道,最多只能使用1MB的內(nèi)存空間,實(shí)在是有點(diǎn)局促。

開(kāi)始執(zhí)行“大家都準(zhǔn)備好了嗎,打起精神來(lái),要準(zhǔn)備開(kāi)始今天的工作了哦!”

“Q哥,這剛剛通電,內(nèi)存條那家伙應(yīng)該還是一片空白吧,咱們要去執(zhí)行哪里的指令啊?”,小A問(wèn)到。

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

“原來(lái)是這樣”,小A點(diǎn)了點(diǎn)頭,似懂非懂的樣子。

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

好家伙,上來(lái)就是一個(gè)大跳轉(zhuǎn),我們一下來(lái)到了BIOS那家伙地盤的中央,開(kāi)始執(zhí)行他準(zhǔn)備的程序了。

接下來(lái)執(zhí)行的這一堆指令我已經(jīng)做過(guò)無(wú)數(shù)次了,對(duì)主板上各單位進(jìn)行檢測(cè),看看有沒(méi)有異常情況,還有初始化我們工作需要的中斷向量表等等,我早已經(jīng)輕車熟路了。

“哥幾個(gè)忙著吶”,我們正忙的熱火朝天,發(fā)現(xiàn)有人在門口圍觀,回頭看去,原來(lái)是隔壁二號(hào)車間、五號(hào)車間、八號(hào)車間的幾個(gè)家伙。

“你們幾個(gè)這么閑,要不來(lái)幫我們干會(huì)兒活?”

“哎,你想得美,你們一號(hào)核是引導(dǎo)處理器(BSP),待遇比我們好,這開(kāi)機(jī)啟動(dòng)的活兒我們?cè)趺茨軗屇兀俊保?hào)車間的虎子陰陽(yáng)怪氣的說(shuō)到。

真是羨慕他們,比我們1號(hào)車間上班時(shí)間晚,每次都可以多睡會(huì)兒。

MBR我繼續(xù)執(zhí)行BIOS中的代碼,一切檢查完畢,沒(méi)什么異常,要準(zhǔn)備啟動(dòng)操作系統(tǒng)大佬了。

接下來(lái),我檢查了BIOS中配置的啟動(dòng)順序,排在第一位的是硬盤兄弟。

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

于是我把硬盤老哥第0盤第0道第1扇區(qū)的內(nèi)容讀取到了內(nèi)存中的0x7C00位置,他們把這玩意叫做主引導(dǎo)記錄MBR,一共512個(gè)字節(jié)。

聽(tīng)硬盤那哥們說(shuō),這是操作系統(tǒng)老大在安裝的時(shí)候,寫到他那里的。

他還告訴我,這個(gè)位置很重要,曾經(jīng)就有病毒占據(jù)了這個(gè)位置,最后沒(méi)辦法只好重裝系統(tǒng)。

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

MBR

讀取到了MBR后,還得檢查最后兩個(gè)字節(jié)必須是0x55和0xAA,看起來(lái)沒(méi)什么問(wèn)題,是一個(gè)合法的MBR,我們又跳到了0x7C00的位置開(kāi)始執(zhí)行。

操作系統(tǒng)終于來(lái)到操作系統(tǒng)的地盤兒了,在操作系統(tǒng)的指示下,我們切換了工作模式,開(kāi)始在保護(hù)模式下工作了!

剛剛切換到保護(hù)模式下,MMU仍然沒(méi)法做地址翻譯工作,我們還是只有直接使用物理地址跟內(nèi)存聯(lián)系,所以得趕緊把頁(yè)目錄和頁(yè)表準(zhǔn)備妥當(dāng)才行。

忙活了一陣子之后,總算把需要的東西都弄好了,我激動(dòng)的打開(kāi)了內(nèi)存分頁(yè)的開(kāi)關(guān),通知MMU部門開(kāi)始工作,現(xiàn)在我們可以使用虛擬地址訪問(wèn)內(nèi)存了,這感覺(jué)棒多了!

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

這時(shí),一旁圍觀的二號(hào)車間、五號(hào)車間、八號(hào)車間那幾個(gè)家伙見(jiàn)狀趕緊遛了回去,因?yàn)樗麄冎溃R上就該他們工作了。

我們繼續(xù)執(zhí)行操作系統(tǒng)的代碼,給咱們CPU其他所有核都準(zhǔn)備好了數(shù)據(jù)和指令,創(chuàng)建了多個(gè)線程出來(lái),把他們也叫起來(lái)一起工作,咱們這個(gè)八核CPU終于全面開(kāi)動(dòng)起來(lái),一下子熱鬧了不少。

再后來(lái),不知執(zhí)行了多少指令,創(chuàng)建了多少線程,才把操作系統(tǒng)老大完整的運(yùn)行了起來(lái),成功完成了這一次的啟動(dòng)。

這就是通電后,我們CPU開(kāi)始工作的日常,我已經(jīng)記不清這是第多少次啟動(dòng)了,也不知道,我們還能啟動(dòng)多少次···

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    463

    文章

    54016

    瀏覽量

    466291
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5608

    瀏覽量

    130010
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4968

    瀏覽量

    73999

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

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    CS1237驅(qū)動(dòng)代碼

    廠家你好求cs1237單片機(jī)驅(qū)動(dòng)源碼,郵箱1541648862@qq.com,萬(wàn)分感激,產(chǎn)品做成必批量使用。
    發(fā)表于 02-16 19:56

    協(xié)議到實(shí)踐——EtherNet/IP與NetStaX的最新進(jìn)展

    協(xié)議到實(shí)踐——EtherNet/IP與NetStaX的最新進(jìn)展
    的頭像 發(fā)表于 12-19 15:26 ?1515次閱讀
    <b class='flag-5'>從</b>協(xié)議到實(shí)踐——EtherNet/<b class='flag-5'>IP</b>與NetStaX的最新進(jìn)展

    準(zhǔn)備用CS32A01X或者CS32A039來(lái)最壓力變送器和溫度變送器,哪里可以下載到demo板和標(biāo)準(zhǔn)示例庫(kù)資料?

    準(zhǔn)備用CS32A01X或者CS32A039來(lái)最壓力變送器和溫度變送器,哪里可以下載到demo板和標(biāo)準(zhǔn)示例庫(kù)資料?
    發(fā)表于 12-11 08:43

    單片機(jī)程序的執(zhí)行

    關(guān)于程序在執(zhí)行時(shí),哪里讀取指令,哪里讀取數(shù)據(jù),也曾因?yàn)闆](méi)有弄清楚系統(tǒng)上的程序和裸機(jī)程序之間的區(qū)別,而疑惑了很久。雖然在《微型計(jì)算機(jī)原理》課上知道程序運(yùn)行時(shí),
    發(fā)表于 12-04 06:20

    代碼執(zhí)行看單片機(jī)內(nèi)存的分配

    。 由于本次進(jìn)入指令寄存器中的內(nèi)容是74H(操作碼),以譯碼器譯碼后單片機(jī)就會(huì)知道該指令是要將一個(gè)數(shù)送到A累加器,而該數(shù)是在這個(gè)代碼的下一個(gè)存儲(chǔ)單元。所以,執(zhí)行該指令還必須把數(shù)據(jù)(E0H)存儲(chǔ)器中
    發(fā)表于 12-02 07:58

    如何直接main函數(shù)開(kāi)始仿真?

    段地址也要修改) 2. 修改前三條指令: 80000000:10010117auipcsp,0x10010#堆棧指針90010000開(kāi)始80000004:293000efjalra
    發(fā)表于 11-05 06:10

    基于E203的DMA ip的使用

    1.BD設(shè)計(jì) 2.AXI DMA寄存器 編寫SDK代碼,需要根據(jù)xilinx的官方例程和dma ip使用手冊(cè)進(jìn)行寄存器的配置。 重要寄存器: MM2S S2MM
    發(fā)表于 10-22 06:00

    學(xué)習(xí)Linux應(yīng)該哪里開(kāi)始

    、交叉編譯、網(wǎng)絡(luò)棧、文件系統(tǒng)……到底哪里開(kāi)始學(xué),才能既不繞彎路,又能學(xué)得“有感覺(jué)”? 今天, 深圳市鋇錸技術(shù)有限公司 就來(lái)帶你拆解這個(gè)問(wèn)題。 一、先理解:Linux 到底是什么? 很多人學(xué) Linux,一上來(lái)就打開(kāi)虛擬機(jī)敲命令
    的頭像 發(fā)表于 10-16 09:51 ?457次閱讀
    學(xué)習(xí)Linux應(yīng)該<b class='flag-5'>從</b><b class='flag-5'>哪里</b><b class='flag-5'>開(kāi)始</b>?

    外殼防護(hù)等級(jí)(IP代碼)全解讀

    什么是外殼防護(hù)等級(jí)(IP代碼IP代碼,全稱為“國(guó)際防護(hù)等級(jí)”,是由國(guó)際電工委員會(huì)制定的全球通用標(biāo)準(zhǔn)。這一標(biāo)準(zhǔn)旨在為電子設(shè)備外殼的防護(hù)能力提供一個(gè)清晰、統(tǒng)一的評(píng)判體系。簡(jiǎn)單來(lái)說(shuō),
    的頭像 發(fā)表于 10-14 12:13 ?1217次閱讀
    外殼防護(hù)等級(jí)(<b class='flag-5'>IP</b><b class='flag-5'>代碼</b>)全解讀

    [ADC/AFE] [求助] 求CS1239的驅(qū)動(dòng)代碼和資料

    正在準(zhǔn)備使用貴司的CS1239應(yīng)用到我們的項(xiàng)目中,希望能提供該芯片的單片機(jī)驅(qū)動(dòng)代碼(51或STM32)、單端應(yīng)用的參考原理圖和數(shù)據(jù)手冊(cè),謝謝! 我的郵箱:2657804890@qq.com
    發(fā)表于 09-26 09:14

    直線旋轉(zhuǎn)執(zhí)行器 vs 傳統(tǒng)執(zhí)行器:優(yōu)勢(shì)差異究竟在哪里??

    在自動(dòng)化設(shè)備中,執(zhí)行器如同 “手腳”,負(fù)責(zé)精準(zhǔn)運(yùn)動(dòng)控制。傳統(tǒng)執(zhí)行器是行業(yè)常客,而直線旋轉(zhuǎn)執(zhí)行器近年憑借獨(dú)特優(yōu)勢(shì)嶄露頭角,二者核心差異值得細(xì)究。? 傳統(tǒng)執(zhí)行器的特點(diǎn)是 “專一”,要么做直
    的頭像 發(fā)表于 09-19 11:48 ?766次閱讀

    從零開(kāi)始學(xué)IP地址

    IP地址是一種網(wǎng)絡(luò)編碼,用來(lái)唯一標(biāo)識(shí)網(wǎng)絡(luò)中的設(shè)備,以確保主機(jī)間正常通信。IP地址由32位二進(jìn)制(32-bit)組成。
    的頭像 發(fā)表于 07-08 09:29 ?1824次閱讀
    從零<b class='flag-5'>開(kāi)始</b>學(xué)<b class='flag-5'>IP</b>地址

    如何使用AMD Vitis HLS創(chuàng)建HLS IP

    本文逐步演示了如何使用 AMD Vitis HLS 來(lái)創(chuàng)建一個(gè) HLS IP,通過(guò) AXI4 接口存儲(chǔ)器讀取數(shù)據(jù)、執(zhí)行簡(jiǎn)單的數(shù)學(xué)運(yùn)算,然后將數(shù)據(jù)寫回存儲(chǔ)器。接著會(huì)在 AMD Vivado Design Suite 設(shè)計(jì)中使用此
    的頭像 發(fā)表于 06-13 09:50 ?1892次閱讀
    如何使用AMD Vitis HLS創(chuàng)建HLS <b class='flag-5'>IP</b>

    請(qǐng)問(wèn)有CS1237的STM32驅(qū)動(dòng)代碼嗎?

    您好,請(qǐng)問(wèn)有CS1237的STM32驅(qū)動(dòng)代碼嗎?能否發(fā)一份437944798@qq.com謝謝!!
    發(fā)表于 05-14 20:38

    如何獲取SMBus示例代碼

    想找一個(gè)用硬件SMBus外設(shè)的示例代碼,但是在網(wǎng)上找到的很多都是HAL庫(kù)的版本,我目前的代碼是用的標(biāo)準(zhǔn)庫(kù),想知道ST官方有沒(méi)有相關(guān)的示例代碼哪里
    發(fā)表于 03-10 07:16