从零开始写操作系统-1

准备工作:在linux下 安装NASM汇编编译器

准备工作结束后开始进入正题:
第一步: vim boot.asm
将内容贴到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!"
times   510-($-$$)   db  0   ; 填充剩下的空间,使生成的二进制代码恰好为512字节
dw  0xaa55              ; 结束标志

第二步: nasm boot.asm -o boot.bin 将汇编程序用nasm编译成二进制文件

第三步:制作一个空的img文件(名字任意),我们可以在linux界面键入
sudo dd if=/dev/zero of=./boot.img bs=512 count=1440 至此 我们已经有三个文件了,一个是boot.asm的汇编文件,一个是boot.bin的二进制文件,一个是刚刚做完的空的boot.img文件

第四步:有三个方法:
1..使用FloppyWriter软件将boot.bin文件中的内容写入boot.img文件中。因为我们此时不使用物理机进行试验,使用虚拟机进行试验,所以我们在floppywriter中选定 Write files To Image ,然后输入boot.bin文件和boot.img文件,显示成功,就可以将boot.bin文件写入boot.img文件中了,此时boot.img就是一个微型系统了
2..当然,也可以有更简单的方法:直接在linux命令行中写入
dd if=./boot.bin of=./boot.img bs=512 count=1 也可以将我们第二步做出来的boot.bin文件写入boot.img文件,此时boot.img文件也是一个微型系统
3.更简单粗暴的方法,将boot.bin文件改文件后缀名,重命名为boot.img文件,这时boot.img文件也是可以运行的(网上的说法是两个都是二进制文件,当然可以互相转换)

第五步:创建一个虚拟机,系统选择others ,接下来就是网上到处可以搜到的创建虚拟机的过程。然后创建虚拟机结束后,编辑虚拟机设置->硬件->添加 软盘,然后在软盘中点击使用软盘镜像文件,并且选择我们刚刚创建好的boot.img文件,然后打开虚拟机

第六步:看,虚拟机界面出现了“ Hello, OS world!” 挺让我兴奋的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值