windows7 下Bochs 运行helloworld

Posted codecamel

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows7 下Bochs 运行helloworld相关的知识,希望对你有一定的参考价值。

一.工具配置

二.20行代码的一个"操作系统"

代码boot.asm

 1 mov ax,cs                      ; 告诉编译器程序加载到7c00处
 2 mov ds,ax
 3 mov es,ax
 4 call DispStr                   ; 调用显示字符串例程
 5 jmp $
 6 DispStr:
 7 mov ax,BootMessage
 8 mov bp,ax                    ; es:bp = 串地址
 9 mov cx,16                    ; cx = 串长度
10 mov ax,01301h                ; ah = 13,al = 01h
11 mov bx,000ch                 ; 页号为0(bh=0) 黑底红字(b1=0ch,高亮)
12 mov dl,0
13 int 10h                      ; 10h号中断
14 ret
15 BootMessage:  db  "Hello,OS world!"
16 times 510-($-$$)  db  0      ; 填充剩下的空间,使生成的二进制代码恰好为512字节
17 dw 0xaa55                    ; 结束标志

 

把这段代码用NASM编译一下:
nasm boot.asm -o boot.bin
在当前目录下边会生成一个512B的boot.bin.一个"操作系统"就已经完成了

三.使用bximage创建一个软盘映像

(这一步如果没有处理好,执行打印Hello World打印会乱码!)

进入Bochs的安装目录,启动命令行(cmd或powershell)
画横线的表示要手动输入,箭头表示直接按回车键就好了

 技术分享图片

image.png


这样就会在当前目录生成a.img

四.使用Cygwin将引导扇区写进软盘

运行Cygwin.bat,进入boot.bin所在的目录(我存放在了bochs的安装目录),输入命令: 

dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc

 技术分享图片

 

image.png

五.使用Bochs启动刚刚写好的"操作系统"

1.写Bochs的配置文件bochsrc
bochsrc保存在Bochs的安装目录下

 技术分享图片

 

image.png


bochsrc代码

 1 megs:32
 2 
 3 romimage:file=$BXSHARE/Bios-bochs-latest
 4 vgaromimage:file=$BXSHARE/VGABIOS-lgpl-latest
 5 
 6 floppya:1_44=a.img,status=inserted
 7 
 8 boot:floppy
 9 
10 log:bochsout.txt
11 
12 mouse:enabled=0
13  
14 keyboard: keymap=$BXSHARE/keymaps/x11-pc-de.map

 

2.打开命令行(cmd或者powershell),运行Bochs

.ochs.exe -f bochsrc

 

image.png

这样就可以看到已经成功运行啦!!!可以看到红色的输出"Hello,OS world!"

 技术分享图片

 

image.png

 技术分享图片

 作者:夏liao夏天
链接:https://www.jianshu.com/p/4ede2d1e467c
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。










以上是关于windows7 下Bochs 运行helloworld的主要内容,如果未能解决你的问题,请参考以下文章

一个操作系统的实现 笔记Windows7下工作环境搭建

Bochs在 Bochs 中运行 Linux 0.1x 系统

Ubuntu 14.04 LTS 安装和配置Bochs

Ubuntu14.04下搭建Bochs仿真平台,同时用该平台安装Linux0.11内核

Bochs调试Linux内核初步学习 - 3

Bochs