日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

计算机的启动过程———《x86汇编语言:从实模式到保护模式》读书笔记补遗01

發(fā)布時(shí)間:2025/3/15 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机的启动过程———《x86汇编语言:从实模式到保护模式》读书笔记补遗01 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

有的朋友問(wèn)我,為什么讀書(shū)筆記不從第一章開(kāi)始寫(xiě)?這個(gè)問(wèn)題啊…當(dāng)初覺(jué)得前面的內(nèi)容不是很重要,就沒(méi)有寫(xiě)。

我真是高估自己的記憶力了,隨著時(shí)間的推移,發(fā)現(xiàn)前面好多內(nèi)容都生疏了,有的朋友問(wèn)我問(wèn)題我都答不上來(lái)。所以,決定再補(bǔ)充一些筆記。即幫助自己回憶,也能方便初學(xué)者。

下面進(jìn)入正題。
你有沒(méi)有想過(guò)這樣一個(gè)問(wèn)題——計(jì)算機(jī)是怎么開(kāi)始執(zhí)行我們寫(xiě)的指令的?
這就需要了解計(jì)算機(jī)的啟動(dòng)過(guò)程了。

對(duì)于32位的x86處理器,在加電啟動(dòng)時(shí),段寄存器CS的內(nèi)容是0xF000,IP寄存器的內(nèi)容為0xFFF0,按照實(shí)模式地址的合成方法,給出的地址就是0xFFFF0;另外,在剛啟動(dòng)的時(shí)候,處理器會(huì)將地址線A20~A31強(qiáng)制為高電平,所以,初始發(fā)出的物理地址就是0xFFFF_FFF0;這個(gè)地址存放的就是BIOS的第一條指令。

在Bochs上,可以看到第一條指令是

jmpf 0xf000:e05b

BIOS需要做的工作有很多,比如
1)初始化各種主板芯片組
2)初始化鍵盤(pán)控制器8042
3)初始化中斷向量 ,中斷服務(wù)例程.
4)初始化 VGA BIOS 控制器
5)顯示BIOS的版本和公司名稱
6)掃描軟驅(qū)和各種介質(zhì)容量
7)讀取CMOS的啟動(dòng)順序配置,并檢測(cè)啟動(dòng)裝置是否正常
8)調(diào)用INT 19h啟動(dòng)自舉程序

對(duì)于匯編語(yǔ)言的學(xué)習(xí),需要了解最后兩個(gè)步驟,(7)和(8)。

BIOS按照”啟動(dòng)順序”,選擇排在第一位的儲(chǔ)存設(shè)備,讀取該設(shè)備的第一個(gè)扇區(qū)(512B)到內(nèi)存0x7c00(物理地址)處,然后檢查這512個(gè)字節(jié)的最后兩個(gè)字節(jié)是不是0x55和0xAA,如果是則表明這個(gè)設(shè)備可以用于啟動(dòng),這個(gè)扇區(qū)就是主引導(dǎo)扇區(qū);如果不是,則繼續(xù)嘗試”啟動(dòng)順序”中的下一個(gè)設(shè)備。

如果確實(shí)是可以啟動(dòng)的設(shè)備,則用一個(gè)華麗的JMP指令跳到0x0000:0x7c00處執(zhí)行。

jmp 0x0000:0x7c00

以后的實(shí)驗(yàn),我們都是從主引導(dǎo)扇區(qū)開(kāi)始寫(xiě)代碼。所以,當(dāng)計(jì)算機(jī)將要執(zhí)行我們寫(xiě)的第一條指令的時(shí)候,請(qǐng)牢記此時(shí)CS=0x0000,IP=0x7c00.

【完】

總結(jié)

以上是生活随笔為你收集整理的计算机的启动过程———《x86汇编语言:从实模式到保护模式》读书笔记补遗01的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。