马上动手写一个最小的操作系统.PDF

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
马上动手写一个最小的操作系统

第1 章 马上动手写一个最小的 “操作系统” 勿以善小而不为。 ——刘备 虽说万事开头难,但有时也未必。比如说,写一个有实用价值的操作系统是一项艰 巨的工作,但一个最小的操作系统或许很容易就实现了。现在我们就来实现一个小得无 法再小的 “操作系统”,建议你跟随书中的介绍一起动手来做,你会发现不但很容易,而 且很有趣。 1.1 准备工作 对于写程序,准备工作无非就是硬件和软件两方面,我们来看一下: 1 .硬件 ó 一台计算机 (Windows 操作系统) ó 一张空白软盘 2 .软件 ó 汇编编译器 NASM 。最新版本可以在此链接处获得:/ projects/nasm。(此刻你可能会有疑问:为什么是 NASM ,而不是 MASM 或者 TASM ?对于这一点本书后面会有解释。) ó 软盘绝对扇区读写工具。比如本书附赠光盘中的FloppyWriter.exe 。 1.2 10 分钟完成的操作系统 你相不相信,一个 “操作系统”可以只有20 行代码?请看: 2 自己动手写操作系统1 代码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! ”,多么奇妙啊,你的 “操作 系统”在运行了! 如果使用Virtual PC 的话 (下文中将会有关于Virtual PC 的详细介绍),你应该能看 到图 1- 1 所示的画面。 这真的是太棒了,虽然你知道它

文档评论(0)

ldj215323 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档