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按钮即可运行!

posted @ 2019-04-05 19:51  jadeshu  阅读(1432)  评论(0编辑  收藏  举报