看《自己動手寫作業系統》後嘗試linux環境搭建
看了《自己動手寫作業系統》後嘗試一下。因為不想用windows作為開發平台,
所以,構建了乙個linux的卡發平台。
www.2cto.com
需要的工具:nasm、qemu、dd
首先,建立軟盤映象檔案。
下面編輯乙個boot.asm檔案如下:
彙編**
org 07c00h ; 告訴編譯器程式載入到7c00處
mov ax, cs
mov ds, ax
mov es, ax
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
bootmessage: db "hello, os world!"
times 510-($-$$) db 0 ; 填充剩下的空間,使生成的二進位制**恰好為512位元組
dw 0xaa55 ; 結束標誌
www.2cto.com
1、用nasm編譯:
$ nasm boot.asm -o boot.bin
這樣就得到了乙個512位元組的boot.bin檔案了,這個就是軟盤啟動扇區裡面應該放的**。
2、你可以用下面這個命令生成軟盤映象檔案:
$ dd conv=sync if=boot.bin of=boot.img bs=1440k count=1
這樣我們就得到軟盤映象boot.img了。注意命令中的conv=sync,使用這個選項後可以使得在把每個輸入塊填充到ibs個位元組時,不足部分用空(null)字元補齊。在這個例子裡由於輸入檔案只有512個位元組,輸出檔案卻需要1.44mb所以我用了這個選項。
3、利用qemu啟動映象檔案:
qemu -fda boot.img -boot a -m 64 -localtime
自己動手寫作業系統
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表示顯示字元的屬性。那麼要呼叫它,只需給出程式的名稱即可...