$ brew install bochs
安裝完後
vim ~/.bash_profile
將下面2行加入mac環境
export BXSHARE="$HOME/opt/bochs/share/bochs"
export PATH="$PATH:$HOME/opt/bochs/bin"
source .bash_profile Mac重新加載配置
拷貝 ~/opt/bochs/share/doc/bochs/bochsrc-sample.txt 名爲bochsrc.txt
,修改配置文件,找到如下配置行 並修改。
romimage: file=$BXSHARE/BIOS-bochs-latest
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
# 1.44=磁盤鏡像位置
floppya: 1_44=boot.img, status=inserted
# 從軟盤啓動
boot: floppy
#輸出日誌
log: bochsout.txt
# 置鼠標不可用
mouse: enabled=0
#鍵盤配置
keyboard: keymap=#$BXSHARE/keymaps/x11-pc-us.map
#內存容量
megs: 32
文件中有2行需要註釋掉,行前面加 # 如下
#sound: driver=default, waveout=/dev/dsp. wavein=, midiout=
...
#ata0-master: type=disk, mode=flat, path="30M.sample"
接下來創建磁盤
首先,bximage命令創建一個軟盤鏡像boot.img(對應配置文件中的floppya):
這裏 寫一個例子 在屏幕輸出hello,world 來測試模擬器。
org 0x7c00
jmp entry
db 0x90
entry:
mov ax,0
mov ss,ax
mov sp,0x7c00
mov ds,ax
mov es,ax
mov si,msg
putloop:
mov al,[si]
add si,1
cmp al,0
je fin
mov ah,0x0e
mov bx,15
int 0x10
jmp putloop
fin:
hlt
jmp fin
msg:
db 0x0a,0x0a
db "hello world!"
db 0x0a
db 0
times 510 - ($-$$) db 0
dw 0xaa55
編譯
nasm boot.asm -o boot.bin
將引導程序寫進軟盤鏡像
dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc
啓動bochs
bochs -f bochsrc.txt #-f 加上配置文件的絕對路徑