全程需要的所有工具与使用

我是介绍工具的顺序来介绍每一步要干什么,
bochs emulator:https://sourceforge/projects/bochs/

点这个,然后安装,安装目录我是放在D盘下的

此时注意,我们是通过cmd打开的。

下方键入cmd,然后点击命令提示符。

本来还想解释一下cd啥的,算了,都写OS了,我这废话多余了。记住最后这个cd后面的目录就是我们把bochs安装到的位置,上面第二张截图中也有。

键入该命令,使用bximage创建软件映像文件


然后再到bochs所在文件夹,看见多了一个a.img。好,此时我们已经创建了一个空的软盘映像文件

用二进制文件编辑器查看,里面全都是0.注意这个二进制查看器不重要;现在第一个工具暂时介绍完。

工具2——nasm:NASM官网链接




然后就是安装了,选择安装到的位置

我的位置,复制这个链接

右击这个选择最下面的属性。


注意这里是系统变量,点击path,然后


然后一路确定
再次打开cmd,键入指令可以看见配置成功

	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!"
times 	510-($-$$)	db	0	; 填充剩下的空间,使生成的二进制代码恰好为512字节
dw 	0xaa55				; 结束标志

然后创建一个txt文件,取名为boot,将代码保存进去。然后把扩展名修改位asm。关于代码中为何前面有org 07c00h,这个我想后面再说,在这里你们可以看一下现象即可,不过这需要汇编的知识,建议学下汇编,8086的即可

然后利用cmd跳到你这个boot.asm所在的文件夹,执行nasm指令。执行之后会有 这个.bin文件
注意这里你的这个bin文件可能会打不开,就是禁止访问,而且报出提示之后会消失。那是因为Windows defender 把他当病毒删了

比如这样,此时我们需要暂时关闭Windows defender



再打开这个bin文件可以看到汇编语言文件被汇编成的二进制文件里面的内容。
然后我们再把这个bin文件复制到之前我们创建的a.img软盘映像文件所在的目录下

接下来我们就要把这个boot.bin文件写入到我们之前制作的空的软盘映像文件中了。此时我们需要一个新的工具:Cygwin

工具3——Cygwin:官网下载地址

安装就不想说了,给你们个教程地址:Cygwin安装教程

然后进入存放bochs文件所在的地方
在此目录下键入指令

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


此时已经将bin文件写入了此前空的a.img文件


如图可以看到bin的内容被写入了a.img中

最后就是使用Bochs启动刚刚写好的"操作系统"了

对了,其实你可以新建一个bochsrc.txt,把代码输入进去之后保存,然后再把txt的扩展名删掉。代码如下

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

效果如图
然后再进入cmd,跳转到bochs的安装目录之下,执行图中的指令.\bochs.exe -f bochsrc


勾选出弹框的对应项,然后点start.这个disk&boot不勾选也是可以的

看,成功的输出了红色的hello,OS world!

教程到此结束,每一样工具干什么,生成什么我都是事无巨细的讲的,花了我2个多小时,各位看官要是觉得有帮助就赏个赞,谢谢啦