操作系统编写之引导扇区

你可能还没有从刚刚的兴奋中走出来,可是我不得不告诉你,实际上,你刚刚所完成的并不是一个完整的操作系统,而仅仅是一个最最简单的引导扇区(Boot Sector)。然而不管我们完成的是什么,至少,它是直接在裸机上运行的,不依赖于任何其他软件,所以,这和我们平时所编写的应用软件有本质的区别。它不是操作系统,但已经具备了操作系统的一个特性。
     我们知道,当计算机电源被打开时,它会先进行加电自检(POST),然后寻找启动盘,如果是选择从软盘启动,计算机就会检查软盘的0面0磁道1扇区,如果发现它以0xAA55结束,则BIOS认为它是一个引导扇区。当然,一个正确的引导扇区除了以0xAA55结束之外,还应该包含一段少于512字节的执行码。
好了,一旦BIOS发现了引导扇区,就会将这512字节的内容装载到内存地址0000:7c00处,然后跳转到0000:7c00处将控制权彻底交给这段引导代码。到此为止,计算机不再由BIOS中固有的程序来控制,而变成由操作系统的一部分来控制。
    现在,你可能明白了为什么在那段代码的第一行会出现“org 07c00”这样的代码。没错,这行代码就是告诉编译器,将来我们的这段程序要被加载到内存偏移地址0x7c00处。好了,下面将对代码的其他部分进行详细解释。

转载于:https://www.cnblogs.com/myjavait/archive/2009/05/19/2142541.html

操作系统编写之引导扇区相关推荐

  1. 【OS学习笔记】六 实模式:编写主引导扇区代码

    上一篇文章学习了:计算机的启动过程(点击链接查看上一篇文章) 这篇文章学习记录为:编写主引导扇区代码. 参考:<X86汇编语言-从实模式到保护模式>-李忠.纯学习笔记,更详细内容请阅读正版 ...

  2. 【OS学习笔记】八 实模式:编写主引导扇区代码-另一种更高效的写法

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 上一篇文章,我们用比较原始的方法编写了主引导扇区的代码.点击链接查看 ...

  3. [书]x86汇编语言:从实模式到保护模式 -- 第六、七章 编写主引导扇区代码

    第六章 编写主引导扇区代码(启动时显示文字:Label offset:) PART 1 >> 用VirtualBox显示最终效果 1.1 汇编 启用nasm的工具"nasm-sh ...

  4. 第五章 编写主引导扇区代码

    本章的思路是,在本机上上写一段代码(这些代码的意义是往显存中写一些数据)-->编译成bin文件-->写入到vhd硬盘的引导扇区(即第一扇区,见第四章详述)-->开机从硬盘启动,从而执 ...

  5. 第5章 编写主引导扇区代码

    开机过程 一.在屏幕上显示文本 01.显卡和显存 每个字节表示三原色中的一个(红绿蓝) 两种模式|-文本模式|-图像模式两种模式的显存是分开的;文本模式下,显存的内容是文本的编码:图像模式下,显存的内 ...

  6. 30天自制操作系统 - 取代软盘,用U盘写入引导扇区

    背景 作者是在2006年发布此书的(翻译版是在2012年在中国发售),当时可能还能找到带有软驱的计算机.但是时过境迁,现在已经不存在这种老古董东西了. 简单总结一下学习到第三天的一些更变. 更变 书籍 ...

  7. 操作系统1——引导扇区的理解

    在操作系统这个方面,我记得自己经常听到主引导记录这个名词,但是对于它的理解并不深,只知道它在系统加载的时候很重要.现在我想自己写一个操作系统,但是想到第一步该怎么做呢?书上说是用汇编写引导程序.那么这 ...

  8. syslinux引导扇区不支持ntfs文件系统_实战 FAT12 文件系统

    1. 引言 经过一系列的文章,我们终于完成了从实地址模式跳转到保护模式,并且实现了分段.分页以及保护模式下的中断与异常机制. 保护模式究竟"保护"了什么 可是我们除了最初的时候,在 ...

  9. 读写U盘(FAT32)引导扇区

    看了<自己动手写操作系统>后,也想自己打造一个迷你操作系统,但是书中使用的软盘现在基本已经绝迹了,而U盘成为一种喜闻乐见的工具.因此想将操作系统写入U盘中,而读写U盘的引导扇区成为成功的关 ...

最新文章

  1. python 将txt 表格转化为excel
  2. 浅谈数据中心IT机房的空气调节(上篇)-气流遏制
  3. 操作系统--用户级线程与内核级线程
  4. JDBC实现用于操作数据库Mysql的工具类JDBCTools
  5. 看看虚函数表是什么样的
  6. 硅谷半夜3点惊现无人驾驶特斯拉!百公里时速飞驰,交警围追10公里才逼停
  7. md5加密、Des加密对称可逆加密、RSA非对称可逆加密、https单边验证、银行U盾双边认证...
  8. myeclipse-10.7-offline-installer-windows安装图解及注意事项
  9. 远程连接Linux系统
  10. 文章原创度检测工具哪个最好用?怎么操作是最好的?
  11. int类型转换byte类型
  12. 凝思系统激活序列号_安装凝思linux操作系统.doc
  13. html公用页脚使用代码,页脚在HTML
  14. 大陆首款车量AI芯片 开启国产替代新纪元
  15. C语言-概念-fscanf函数和fprintf函数
  16. java jfreechart 折线图_JFreeChart在制作折线图
  17. 解题:肯前必肯后,否后必否前
  18. C++中如何控制语句只执行一次_【Python基础(七)】逻辑控制
  19. 信号与系统实验 01 - | 连续系统频域分析的MATLAB实现
  20. 丰田汽车音频总线AVC-LAN

热门文章

  1. 通信中dBFS、dBm、dBV、dBW、0dB、-3dB的定义
  2. jittor和pytorch生成网络对比之sgan
  3. jittor和pytorch生成网络对比之acgan
  4. 读取csv数据存到list,批量写入mysql
  5. 总量迈过90万亿元关口 中国经济交出稳健答卷
  6. 综合应用WPF/WCF/WF/LINQ之三:采用用代码创建的方式实现CheckListBox的CustomControl
  7. XamarinForms教程构建XamarinForms开发环境
  8. nginx 0.8.x + PHP 5.2.13 胜过apache十倍的web服务器
  9. 未来网络发展的趋势——IPv6详细讲解与基本配置
  10. 拍拍网t恤DIY效果