一个最简单的系统引导扇区的实现方法(Boot Sector)
本文由发表于8年前 | 操作系统 | 评论数 1 |  被围观 4,551 views+

1、引导扇区:

引导扇区包含一段少于512字节的执行码。

如果是从软盘启动时,计算机会检查软盘的0面0磁道1扇区,如果发现这个扇区是以0xAA55结束,则BIOS认为他是一个引导扇区。这时BIOS就会将这段代码装载到内存地址:0000:7c00处,之后跳转到该地地址处并把控制权交给这段引导代码。

2、关于10H服务程序

可以参考这篇文章:汇编中的10H中断int 10h详细说明

3、以下是实现代码
import java.io.IOException;
	org	07c00h			; 让程序加载到7c00处
	mov	ax, cs
	mov	ds, ax
	mov	es, ax			;以上三行使ds和es段寄存器都指向cs,方便以后的操作
	call	DispStr			; 调用显示字符串例程
	jmp	$			; 无限循环
DispStr:
	mov	ax, BootMessage
	mov	bp, ax			; 让ES:BP指向下面的字符串地址
	mov	cx, 18			; CX = 18 保存显示字符串的长度
	mov	ax, 01301h		; AH = 13,13号功能:在Teletype模式下显示字符串
					; AL = 01h,字符串中只含显示字符,其显示属性在BL中
	mov	bx, 003dh		; BH = 0,页码为0  BL = 0Ch,高亮 黑底红字
	mov	dl, 0			; dl指定从第1列开始输出
	int	10h			; 执行 10h 号中断
	ret
BootMessage:		db	"It's running now! "
times 	510-($-$$)	db	0	; 用0填充剩下的空间,使得加上以下的两个字节的结束标志恰好为512字节
dw 	0xaa55				; 指定结束标志为0xaa55,使之成为引导扇
除了文章中有特别说明,均为IT宅原创文章,转载请以链接形式注明出处。
本文链接:http://www.itzhai.com/simple-system-boot-sector-boot-sector.html
arthinking 指弹吉他 && 技术 more
分享到:
 
2011 5/1
文章评论
    一条评论
  1. fk 2014年11月09日20:26:54  #-49楼 回复 回复

    正在学习《一个操作系统的实现》这本书。学到不少东西!

给我留言

有人回复时邮件通知我
操作系统的相关文章
随机文章 本月热门 热评
1 Hibernate的xerces-2.6.2.jar文件冲突引发的Unable to load configuration错误及其解决方法 2011/5/23
2 The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application 2011/12/31
3 C语言语法笔记 – 基本语法介绍 预处理命令 2011/8/30
4 Java Web笔记 – 客户化JSP标签库 自定义标签 2011/11/12
5 Java基础笔记 – 通过反射机制修改类中的私有属性的值 2011/10/8
6 Java基础笔记 – Java IO介绍以及File类的介绍和基本使用 2011/10/20
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.