動手寫作業系統1

2021-08-31 05:11:43 字數 698 閱讀 6880

1:裝好bochs

2:裝好nasm

3:liux.asm

org 0x7c00 ; bios自檢完後將轉到記憶體絕對位址7c00處繼續執行

jmp _start

_start:

xor ax, ax ; make it zero

mov ds, ax

mov es, ax

;; 設定bios輸出的屬性(其實位置、顏色)

xor dx, dx

mov bx, 0x000e

;; 通過bios的int 10h中斷輸出文字

mov bp, msg

mov cx, msglen

mov al, 1

mov ah, 0x13

int 0x10

;; 掛起

jmp $

;; 文字常量:

msg db "hello os world!", 0

msglen equ $ - msg ; 文字串的長度

;; 引導程式標記:以 0x55 0xaa 結尾

times 510 - ($ - $$) db 0

db 0x55

db 0xaa

4:編譯nasm -o liux.img liux.asm

5:設定bochs從軟盤啟動。

自己動手寫作業系統

virtual pc 5.2 下 dos7.1 中 執行.com檔案相關問題 2009 09 09 12 55 剛才在進入dos後,編譯.asm檔案獲得.com檔案,但系統會出現 emm386 unrecoverable privileged operation error n9.press ent...

自己動手寫作業系統

今天看了前兩章,現將重點記錄如下 作業系統的啟動,關鍵點時同bios的介面 這裡有兩個位址很重要,a,0x7c00 510 0x7dfe登記標誌位 兩個byte 0xaa55 b,0x7c00,作業系統載入的目標位址 系統啟動過程 1 bios清零cpu現場 傳送reset訊號 2 cpu從0xf ...

自己動手寫作業系統

2 自己動手寫作業系統 3自己動手寫作業系統 如何呼叫bios中斷 在一般的程式語言中,函式的呼叫是一件非常容易的事情。比如在c語言中,如果有乙個名為display的程式,它帶有兩個引數,其中引數 noofchar表示顯示的字元數,引數attr表示顯示字元的屬性。那麼要呼叫它,只需給出程式的名稱即可...