让我们自己编写一个操作系统(OS)(一)

 1.硬件
— 一台计算机(Windows操作系统)
— 一张空白软盘
2.软件
— 汇编编译器NASM。
— 软盘绝对扇区读写工具。

代码1-1  /chapter1/a/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编译一下:
nasm boot.asm –o boot.bin
我们就得到了一个512B的boot.bin,使用软盘绝对扇区读写工具将这个文件写到一张空白软盘的第一个扇区。好了,你的第一个“操作系统”就已经完成了。这张软盘已经是一张引导盘了。
把它放到你的软驱中重新启动计算机,从软盘引导,你看到了什么?
计算机显示出你的字符串了!红色的“Hello, OS world!”,你的“操作系统”在运行了!

这两天心情好,写了这段代码,过两天如果心情还这么好的话,就写第二段fso的代码,真正实现一个小小的仿DOS的小小的OS!

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值