一、安装 bochs 2.6.8
先下载下来
wget https://nchc.dl.sourceforge.net/project/bochs/bochs/2.6.8/bochs-2.6.8.tar.gz
解压
tar -zxvf bochs-2.6.8.tar.gz
cd bochs-2.6.8 进入文件,进行配置
./configure --enable-ne2000 \
--enable-all-optimizations \
--enable-cpu-level=6 \
--enable-x86-64 \
--enable-vmx=2 \
--enable-pci \
--enable-usb \
--enable-usb-ohci \
--enable-e1000 \
--enable-debugger \
--enable-disasm \
--disable-debugger-gui \
--with-sdl \
--prefix=$HOME/opt/bochs;
然后进行编译安装
make
make install
这个地方可能会报错(感谢网上其他博主的资料)
vi ./iodev/hdimage/cdrom_osx.cc
在194行 进行替换代码
if ((devname = strrchr(devpath, '/')) != NULL) {
改为:
if ((devname = (char *) strrchr(devpath, '/')) != NULL) {
make和make install成功
二、安装nasm 汇编器
brew install nasm
查看是否安装成功
nasm -v
三、执行bochs
拷贝 ~/opt/bochs/share/doc/bochs/bochsrc-sample.txt bochsrc 进行备份。
对配置文件并作修改,此配置为从软盘镜像启动。
romimage: file=$BXSHARE/BIOS-bochs-latest
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
# 1.44=磁盘镜像位置
floppya: 1_44=a.img, status=inserted
# 从软盘启动
boot: floppy
log: bochsout.txt
# 置鼠标不可用
mouse: enabled=0
keyboard: keymap=#$BXSHARE/keymaps/x11-pc-us.map
megs: 32
找到以下代码,进行注释
sound: driver=default, waveout=/dev/dsp. wavein=, midiout=
...
ata0-master: type=disk, mode=flat, path="30M.sample"
vim ~/.bash_profile
在环境中添加
export BXSHARE="$HOME/opt/bochs/share/bochs"
export PATH="$PATH:$HOME/opt/bochs/bin"
然后进行重新编译
source ~/.bash_profile
创建一个
touch boot.asm
进行填充代码
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 配置文件位置
bochs -f bochsrc-sample.txt