發(fā)布時(shí)間:2024-04-14 文章來源:深度系統(tǒng)下載 瀏覽:
一、簡單的磁盤引導(dǎo)程序
簡單的說明:計(jì)算機(jī)加電后,BIOS檢查硬件等等,BIOS調(diào)用19號中斷加載磁盤引導(dǎo)程序。 以下用NASM編寫的一個(gè)簡單的磁盤引導(dǎo)程序 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; '$'表示當(dāng)前代碼行的地址,'$$'表示起始代碼地址
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[bits 16] ;說明這是16位代碼(可以不寫)
org 7c00h ;在運(yùn)行時(shí)將此段程序加載到內(nèi)存7c00h位置
jmp $ ;循環(huán)
times 510 - ($ - $$) 0 ;剩余部分填充0,總大小為512,為0xaa55預(yù)留2字節(jié)
dw 0xaa55 ;結(jié)束標(biāo)志
二、實(shí)模式與保護(hù)模式 簡單來理解,實(shí)模式運(yùn)行在16位環(huán)境下,保護(hù)模式運(yùn)行在32位環(huán)境下。32位環(huán)境中尋址空間可達(dá)4GB,除此之外,32位環(huán)境中可以很好的支持多任務(wù)。 從執(zhí)行程序的角度來理解兩種模式: 1、實(shí)模式 實(shí)模式下計(jì)算地址方式是通過“16位段地址(寄存器中)*16h+偏移”來實(shí)現(xiàn)的。 例如指令的尋址:CS*16h + IP ![]() 實(shí)模式 2、保護(hù)模式 保護(hù)模式下計(jì)算地址的方式是通過“GDT中存儲的段地址*16h+偏移”來實(shí)現(xiàn)的。32位模式下,16位的段地址被用來尋找GDT的位置。 例如指令的尋址:CS-->GDT代碼段位置*16h + IP 解釋一下GDT(Global Descriptor Table),看一下他的結(jié)構(gòu): ![]() GDT(Global Descriptor Table) 從表中可以看出,GDT首先是一個(gè)數(shù)組結(jié)構(gòu),每一個(gè)條目存儲了段的信息。下面就可以來理解保護(hù)模式下如何通過描述符表來進(jìn)行地址計(jì)算了: ![]() 地址計(jì)算 以上是實(shí)模式向保護(hù)模式轉(zhuǎn)換的基本原理 |
上一篇: