一個小操作系統

转载 2012年03月30日 20:00:24

代码1-1  \chapter1\a\boot.asm
一个“操作系统”可以只有20行代码。
把下面这段代码用NASM编译一下:
nasm boot.asm –o boot.bin

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 ; 结束标志


我们就得到了一个512B的boot.bin,使用软盘绝对扇区读写工具将这个文件写到一张空白软盘的第一个扇区。好了,你的第一个“操作系统”就已经完成了。这张软盘已经是一张引导盘了。
把它放到你的软驱中重新启动计算机,从软盘引导,你看到了什么?

 

相关文章推荐

一个人写的操作系统 - Sparrow OS

一个人写的操作系统 - Sparrow OS 自己写一个操作系统,这是在过去的几年里我一直为之努力的目标,现在终于完成了。
  • fyzhao
  • fyzhao
  • 2013-12-19 19:25
  • 7322

[Chunos] 一个Posix操作系统内核

Chunos是自己出于学习以及提高编程为目的而写的一个简小的操作系统内核。现在,系统可以基本运行了,但是没有经过大量的测试。下图是系统在skyeye上运行的情况,shell已经运行起来了,并等待命令的...

一个操作系统的实现第九章源代码出错解决过程及疑问

运行chapter9/b源代码, bochs虚拟机终端会打印如下信息: Exception! --> #UD Invalid Opcode (Undefined Opcode) EFLAG...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)