windows7 下Bochs 運行helloworld


一.工具配置

二.20行代碼的一個"操作系統"

代碼boot.asm

 1     org 07c00h ; 告訴編譯器程序加載到 7c00處 
 2     mov ax, cs 
 3     mov ds, ax 
 4     mov es, ax                     
 5     call DispStr ; 調用顯示字符串例程 
 6     jmp $ ; 無限循環 
 7 DispStr: 
 8     mov ax, BootMessage 
 9     mov bp, ax ; es:bp = 串地址 
10     mov cx, 16 ; cx = 串長度 
11     mov ax, 01301h ; ah = 13, al = 01h 
12     mov bx, 000ch ; 頁號為 0(bh = 0) 黑底紅字(bl = 0Ch,高亮) 
13     mov dl, 0 
14     int 10h ; 10h 號中斷 
15     ret 
16 BootMessage: 
17     db "Hello, OS world!" 
18     times 510-($-$$) db 0 ; 填充剩下的空間,使生成的二進制代碼恰好為 
19     dw 0xaa55 ; 結束標志

 

 

把這段代碼用NASM編譯一下:
nasm boot.asm -o boot.bin
在當前目錄下邊會生成一個512B的boot.bin.一個"操作系統"就已經完成了

三.使用bximage創建一個軟盤映像

(這一步如果沒有處理好,執行打印Hello World打印會亂碼!)

進入Bochs的安裝目錄,啟動命令行(cmd或powershell)
畫橫線的表示要手動輸入,箭頭表示直接按回車鍵就好了

 

image.png


這樣就會在當前目錄生成a.img

四.使用Cygwin將引導扇區寫進軟盤

運行Cygwin.bat,進入boot.bin所在的目錄(我存放在了bochs的安裝目錄),輸入命令: 

dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc

 

 

image.png

五.使用Bochs啟動剛剛寫好的"操作系統"

1.寫Bochs的配置文件bochsrc
bochsrc保存在Bochs的安裝目錄下

 

 

image.png


bochsrc代碼

 1 megs:32
 2 
 3 romimage:file=$BXSHARE/BIOS-bochs-latest
 4 vgaromimage:file=$BXSHARE/VGABIOS-lgpl-latest
 5 
 6 floppya:1_44=a.img,status=inserted
 7 
 8 boot:floppy
 9 
10 log:bochsout.txt
11 
12 mouse:enabled=0
13  
14 keyboard: keymap=$BXSHARE/keymaps/x11-pc-de.map

 

2.打開命令行(cmd或者powershell),運行Bochs

.\bochs.exe -f bochsrc

 

image.png

這樣就可以看到已經成功運行啦!!!可以看到紅色的輸出"Hello,OS world!"

 

 

image.png

 

 作者:夏liao夏天
鏈接:https://www.jianshu.com/p/4ede2d1e467c
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM