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