利用bochs完成《orange's一个人的操作系统》引导扇区的实验

一、安装nasm
在终端里执行sudo apt-get install nasm(我用的是Ubuntu9.10)
二、在某个文件夹(比如chapter1)中建立boot.asm文件,文件内容为:


org 07c00h ; 告诉编译器程序加载到7c00处 mov ax, cs mov ds, ax mov es, ax call DispStr ; 调用显示字符串例程 jmp $ ; 无限循环 DispStr: mov ax, BootMessage mov bp, ax ; ES:BP = 串地址 mov cx, 16 ; CX = 串长度 mov ax, 01301h ; AH = 13, AL = 01h mov bx, 000ch ; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮) mov dl, 0 int 10h ; 10h 号中断 ret BootMessage: db "Hello, OS world!/n" times 510-($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为512字节 dw 0xaa55 ; 结束标志
三、编译该程序
nasm -o boot.bin boot.asm
四、建立软盘映像

终端输入:bximage(回车)
fd(回车)
(回车)
(回车)
这样就创建了一个名为a.img的软盘映像

然后执行dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc

五、建立bochs的配置文件
############################################################### # Configuration file for Bochs ############################################################### # how much memory the emulated machine will have megs: 32 # filename of ROM images romimage: file=/usr/local/share/bochs/BIOS-bochs-latest vgaromimage: file=/usr/local/share/bochs/VGABIOS-lgpl-latest # what disk images will be used floppya: 1_44=a.img, status=inserted # choose the boot disk. boot: floppy # where do we send log messages? # log: bochsout.txt # disable the mouse mouse: enabled=0 # enable key mapping, using US layout as default. keyboard_mapping: enabled=1, map=/usr/local/share/bochs/keymaps/x11-pc-us.map
六、启动bochs
启动以后在终端输入c,然后就可以看到bochs成功启动,赶快试试吧!

利用bochs完成《orange's一个人的操作系统》引导扇区的实验_第1张图片



注意(终端的当前工作目录要始终处于boot.asm的所在目录)

你可能感兴趣的:(利用bochs完成《orange's一个人的操作系统》引导扇区的实验)