windows环境下利用bochs写一个简单的操作系统(Boot Sector)

一.使用工具及环境

1.windows10

2.bochs-2.6.9

3.dd工具

4.nasm(汇编编译器)

所用工具皆可在链接:https://pan.baidu.com/s/1JvJltHi3GoGN-9aMT-MGgQ 中找到
提取码:c6os

为方便起见,我们可以将nasm.exe和dd.exe放在电脑c盘的windows/system32文件夹下

 

前置一些简单知识(大佬请略过):

命令指示符的打开方式为WIN+R,在框内输入cmd

一些简单的指令:

cd ..   返回当前目录上一级

cd []   进入某一文件夹,例如 cd windows,可进入当前目录的windows文件夹中

dir 显示当前文件夹所有文件

.\xxx 执行xxx文件

e: 可以进入e盘

二.基础代码

org 07c00h ;告诉编译器加载到7c00处,如果把这个改成0100h就可以编译成一个.com文件在dos下运行啦

mov ax,cs
mov ds,ax
mov es,ax ;这三行让ds,es两个段寄存器指向与cs相同的段

call Display ;告诉程序调用display函数
jmp $ ; $指的是当前行被汇编后的地址,这行的作用可以理解为让其无限循环

Display:
mov ax,Message
mov bp,ax ;字符串的地址
mov cx,20 ;保存的是字符串长度,例如本例为20字节
mov ax,01301h ;ah=13,al=01h(ax寄存器的高位和地位)
mov bx,000ch ;页号位0,使用黑色为背景色,红色为字体颜色
mov dl,0
int 10h ;10h中断,用来显示字符
ret

Message: db "a easy boot sector !"
times 510-($-$$) db 0;填充510字节的0,$$表示编译后的起始地址
dw 0xaa55 ;表示结束,加上前面的510字节正好512字节满足条件

将代码保存为boot.asm,可以使用记事本的另存为所有文件来保存这段代码

打开命令指示符,然后通过cd指令进入boot.asm所在的文件夹,使用nasm工具

输入:nasm boot.asm -o boot.bin 

可得到一个名为boot.bin的文件

之后安装bochs-2.6.9,在命令指示符中进入bochs-2.6.9文件,输入.\bximage.exe,并按下图操作

    之后我们就成功新建了一个名为a.img的文件,随后将boot.bin复制到该文件夹下,在命令指示符中使用dd命令:

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

此时我们就成功的得到了一个小系统(引导扇区)

我们再新建并编辑一个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

最后在命令指示符中键入 .\bochs.exe -f bosh.src ,我们的字符就显示出来啦

 

 

 

 

  • 13
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值