全程需要的所有工具与使用
我是介绍工具的顺序来介绍每一步要干什么,
bochs emulator:https://sourceforge.net/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
看,成功的输出了红色的hello,OS world!
教程到此结束,每一样工具干什么,生成什么我都是事无巨细的讲的,花了我2个多小时,各位看官要是觉得有帮助就赏个赞,谢谢啦
来源:CSDN
作者:Top of the Galaxy
链接:https://blog.csdn.net/wuhanyi1/article/details/104196605