淺嘗輒止91-BIOS例程

計(jì)算機(jī)通電后為什么可以啟動(dòng)裕菠?

BIOS(Basic Input and Output System)

第一條指令

在通電的一瞬間,PC等相關(guān)寄存器的值是固定的數(shù)字赋咽,也就對(duì)應(yīng)了一個(gè)特定的地方。在那個(gè)地方,我們可以放入這個(gè)計(jì)算機(jī)要執(zhí)行的第一條指令了赵。
這條指令就存在ROM(Read Only Memory)中,也就是說(shuō)甸赃,電腦通電后就會(huì)執(zhí)行ROM中存儲(chǔ)的代碼柿汛,這段代碼就是BIOS。

例程

計(jì)算機(jī)上豐富多彩的功能肯定不是BIOS來(lái)做的埠对,所以它的基本工作完成后络断,會(huì)繼續(xù)引導(dǎo)其它軟件繼續(xù)完成啟動(dòng)大業(yè)。但是它已經(jīng)完成的工作還是可以幫到后面的弟兄的鸠窗,這個(gè)幫助就是通過(guò)例程完成的妓羊。
一個(gè)BIOS例程很像是一個(gè)函數(shù),也有參數(shù)稍计、調(diào)用躁绸、返回值這些要素。

BIOS例程實(shí)例

參考一下grub2的boot.S里面對(duì)例程的使用臣嚣。
grub2是用來(lái)配置系統(tǒng)啟動(dòng)的净刮。在這個(gè)實(shí)例中,BIOS后面的兄弟就是grub2生的硅则。
BIOS會(huì)把硬盤(pán)一開(kāi)始的一些內(nèi)容加載到內(nèi)存淹父,然后執(zhí)行它,這些內(nèi)容就是boot.S編譯后的機(jī)器碼怎虫。boot.S中會(huì)使用一些BIOS例程暑认,所以用它來(lái)做例子很合適困介。

    movb    $0x41, %ah
    movw    $0x55aa, %bx
    int $0x13

    /*
     *  %dl may have been clobbered by INT 13, AH=41H.
     *  This happens, for example, with AST BIOS 1.04.
     */
    popw    %dx
    pushw   %dx

    /* use CHS if fails */
    jc  LOCAL(chs_mode)
    cmpw    $0xaa55, %bx
    jne LOCAL(chs_mode)

    andw    $1, %cx
    jz  LOCAL(chs_mode)

分析

參數(shù)寄存器
  • ah
    功能編號(hào)
    告訴例程要做什么
    0x41就是詢(xún)問(wèn)磁盤(pán)擴(kuò)展讀功能
  • dl
    磁盤(pán)編號(hào)
    在更早的時(shí)間時(shí),在BIOS中被賦值
  • bx
    固定0x55aa
    這是硬盤(pán)里面的扇區(qū)結(jié)束的固定字符
調(diào)用
int $0x13

以軟件中斷形式調(diào)用蘸际,由此看來(lái)座哩,BIOS中肯定有中斷向量表。

返回值寄存器

cf/ah/bx/cx粮彤,它們都有特定的含義根穷。

更多關(guān)于0x13中斷的參考

https://en.wikipedia.org/wiki/INT_13H

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市导坟,隨后出現(xiàn)的幾起案子屿良,更是在濱河造成了極大的恐慌,老刑警劉巖惫周,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尘惧,死亡現(xiàn)場(chǎng)離奇詭異改抡,居然都是意外死亡碗淌,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)逮走,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)漾狼,“玉大人重慢,你說(shuō)我怎么就攤上這事⊙吩辏” “怎么了似踱?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)稽煤。 經(jīng)常有香客問(wèn)我核芽,道長(zhǎng),這世上最難降的妖魔是什么酵熙? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任轧简,我火速辦了婚禮,結(jié)果婚禮上匾二,老公的妹妹穿的比我還像新娘哮独。我一直安慰自己,他們只是感情好察藐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布皮璧。 她就那樣靜靜地躺著,像睡著了一般分飞。 火紅的嫁衣襯著肌膚如雪悴务。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,754評(píng)論 1 307
  • 那天譬猫,我揣著相機(jī)與錄音讯檐,去河邊找鬼羡疗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛别洪,可吹牛的內(nèi)容都是我干的顺囊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蕉拢,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了诚亚?” 一聲冷哼從身側(cè)響起晕换,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎站宗,沒(méi)想到半個(gè)月后闸准,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡梢灭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年夷家,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敏释。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡库快,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出钥顽,到底是詐尸還是另有隱情义屏,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布蜂大,位于F島的核電站闽铐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏奶浦。R本人自食惡果不足惜兄墅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望澳叉。 院中可真熱鬧隙咸,春花似錦、人聲如沸成洗。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)泌枪。三九已至概荷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碌燕,已是汗流浹背误证。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工继薛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人愈捅。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓遏考,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親蓝谨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子灌具,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1.INT指令 int指令格式為:int n,n為中斷碼的類(lèi)型譬巫,功能是引發(fā)對(duì)應(yīng)中斷碼的中斷 int指令執(zhí)行的時(shí)候分...
    官總哦閱讀 2,240評(píng)論 0 3
  • 前面應(yīng)該有一章咖楣,“一:操作系統(tǒng)的概述”,懶得寫(xiě)芦昔,但是很重要诱贿,最好去看下視頻,如果有人看的話咕缎,以后有空再補(bǔ) 首先我們...
    Wcdaren閱讀 1,739評(píng)論 0 1
  • 王爽匯編全書(shū)知識(shí)點(diǎn)大綱 第一章 基礎(chǔ)知識(shí) 機(jī)器語(yǔ)言 匯編語(yǔ)言的產(chǎn)生 匯編語(yǔ)言的組成 存儲(chǔ)器 cpu對(duì)存儲(chǔ)器的讀寫(xiě) ...
    2c3ba901516f閱讀 2,419評(píng)論 0 1
  • mit6.828的JOS系統(tǒng)啟動(dòng)分為兩部分珠十,Boot Loader和kern。BIOS加載Boot Loader程...
    __七把刀__閱讀 8,437評(píng)論 0 8
  • 環(huán)境搭建下載代碼編譯代碼 1. 環(huán)境搭建 使用Ubuntu14.04 下載openjdk8 2.1 添加PPA 2...
    狗錢(qián)偷生閱讀 2,016評(píng)論 0 0