关闭

一個小操作系統

标签: 编译器工具osc
571人阅读 评论(1) 收藏 举报
分类:

代码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,使用软盘绝对扇区读写工具将这个文件写到一张空白软盘的第一个扇区。好了,你的第一个“操作系统”就已经完成了。这张软盘已经是一张引导盘了。
把它放到你的软驱中重新启动计算机,从软盘引导,你看到了什么?

 

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:311457次
    • 积分:4231
    • 等级:
    • 排名:第7145名
    • 原创:120篇
    • 转载:77篇
    • 译文:0篇
    • 评论:31条
    最新评论