10分钟完成的操作系统

简介:       教你动手写自己的操作系统,学习嵌入式必不可少的入门引导~org 07c00h ; 告诉编译器程序加载到7c00处     mov ax, cs     mov ds, ax    ...
      教你动手写自己的操作系统,学习嵌入式必不可少的入门引导~

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!”,多么奇妙啊,你的“操作系统”在运行了! 
   
目录
相关文章
|
安全 Unix Linux
操作系统的介绍
操作系统的介绍
74 0
|
3月前
|
缓存
操作系统系列(一)
操作系统系列(一)
|
算法 Linux 调度
操作系统相关题
你熟悉哪些服务器操作系统?对于不同操作系统的特点和用途,你有什么了解和经验?
94 0
|
监控 机器人 调度
操作系统概论——操作系统
操作系统概论——操作系统
81 0
|
存储 算法 人机交互
基础夯实:操作系统 (下)
基础夯实:操作系统 (下)
|
算法
操作系统——并发进程
操作系统——并发进程
149 0
|
存储 缓存 安全
|
算法 Linux API
|
算法 调度 索引