學習筆記 乙個簡單的引導扇區

2021-07-22 09:00:18 字數 1722 閱讀 3150

今天開始第一課:

說明:我試驗環境linux+bochs(搭建環境也費了點神,哎)

十分鐘完成的作業系統----實質是乙個引導扇區

在最開始看的時候還是慢困難的,在完成彙編課程設計後其實就簡單了很多,有興趣的可以看看我課程設計中的相關資料,或者了解一下作業系統的啟動過程,這樣頭腦要清晰很多

下面的**中的clearscreen函式是我自己加的,方便觀察結果

[cpp]view plain

copy

org 07c00h          ; 告訴編譯器程式載入到7c00處  

mov ax, cs  

mov ds, ax  

mov es, ax  

call clearscreen  

call    dispstr         ; 呼叫顯示字串例程  

jmp $           ; 無限迴圈  

dispstr:  

mov ax, bootmessage  

mov bp, ax          ; es:bp = 串位址  

mov cx, 16          ; cx = 串長度  

mov ax, 01301h      ; ah = 13,  al = 01h  

mov bx, 000ch       ; 頁號為0(bh = 0) 黑底紅字(bl = 0ch,高亮)  

mov dl, 0  

int 10h         ; 10h 號中斷  

ret  

clearscreen:                ;清屏函式  

push ax  

push es  

push di  

push cx  

mov ax,0b800h                   ;視訊記憶體位址  

mov es,ax  

mov di,0            ;視訊記憶體偏移位址  

mov cx,2000  

cls:  mov  byte [es:di],' '       ;往顯示器輸入空字元  

add di,2  

loop cls  

pop cx  

pop di  

pop es  

pop ax  

ret  

bootmessage     db  "hello, os world!"

times   510-($-$$)  db  0   ; 填充剩下的空間,使生成的二進位制**恰好為512位元組  

dw  0xaa55              ; 結束標誌  

把這段**用nasm編譯一下:

準備乙個軟盤(可以用網上工具製作),連線到虛擬機器linux種然後在linux下可以這樣把程式寫入軟盤:

進入bochs:

按6開始,然後按c如果一切順利就會出現下面這個畫面:

關於配置環境書上講得其實很詳細了,慢慢除錯,堅持!!

乙個系統引導程式的簡單示例1

在做這個引導程式之前需準備 ubuntu作業系統 16.04 vmware虛擬機器 nasm編譯器 如何安裝ubuntu作業系統和vmware虛擬機器 安裝教程見 如何將nasm編譯器匯入ubuntu系統 2.解壓 3.進入解壓目錄 進入剛解壓的目錄,分別輸入 configure make sudo...

WindowsApi學習筆記 建立乙個簡單的視窗

include lresult callback mainwndproc hwnd,uint,wparam,lparam 視窗函式的函式原型 int apientry winmain apientry是 stdcall的巨集定義 hinstance hinstance,本模組的例項控制代碼 hins...

Flask學習筆記 建立乙個簡單的Flask應用

1.做好準備工作 在flask中,含有名為 init py 檔案的子目錄被視為包,可以被匯入。from flask import flask上面的指令碼從flask包中匯入了flask類,並建立了乙個應用例項。傳遞給flask類的 name 變數是乙個python預定義變數,這個變數被設定為使用它的...