bochs模拟器创建映像文件 、写入文件并启动
安装 bochs,dd for windows,nasm,并将安装目录加入到环境变量中。
我用的bochs版本是2.6.8
1.用 bochs 中 bximage.exe 创建新的 img 文件
2.编写汇编代码并编译成二进制文件
test.asm汇编文本文件
org 0x7C00 ;主引导记录的内存地址
jmp entry
entry:
mov ax, 0
mov ss, ax
mov ds, ax
mov es, ax
mov si, msg ;将msg地址赋给si
putLoop:
mov al, [si] ;等同 mov al, byte [si] 将si地址开始的一个字节的值放入al中
add si, 1 ;si = si+1
cmp al, 0 ;al与0比较
je fin ;如上面比较相等 则跳转到fin 不相等则不跳转,执行后面命令
mov ah, 0x0e
int 0x10
jmp putLoop
fin:
HLT ;暂停
jmp fin
msg:
DB 0x0a, 0x0a
DB "create,jadeshu OS!"
;DB 0
times 510-($-$$) db 0;填充510字节的0,$$表示编译后的起始地址
dw 0xaa55 ;表示结束,加上前面的510字节正好512字节满足条件
用cmd 命令输入nasm test.asm -o test.bin 编译成二进制文件
3.将test.bin文件写入如上面第1点讲解创建的映像文件a.img内
在 cmd 中使用指令dd if=test.bin of=a.img bs=512 count=1 将test.bin写入 a.img映射文件内
如果没有dd命令,在windows下可以安装cygwin,又简单又方便使用linux命令!
4.新建一个文件bosh.src,文件名你自己可以随便命令,如下是配置文件
megs:32
romimage:file=$BXSHARE/BIOS-bochs-latest
vgaromimage:file=$BXSHARE/VGABIOS-lgpl-latest
floppya:1_44=a.img,status=inserted
boot:floppy
log:bochsout.txt
mouse:enabled=0
keyboard: keymap=$BXSHARE/keymaps/x11-pc-de.map
5.启动
在命令指示符中键入 .\bochs.exe -f bosh.src
点击start按钮即可运行!