一个最简单的系统引导扇区的实现方法(Boot Sector)
本文由发表于7年前 | 操作系统 | 评论数 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 Javascript笔记 – Javascript中的原型和this指针 2012/5/22
2 JavaScript设计模式笔记 – 单例模式 链式调用 2012/10/25
3 数据结构笔记 – 排序算法 希尔排序算法 2011/9/21
4 Android中使用Gson解析JSON数据 2011/7/14
5 Hibernate复合主键作为外键在关联映射中的配置方法 2011/9/30
6 Java基础笔记 – 包和访问修饰符 instanceof与相等性比较 2011/10/28
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
猜您喜欢
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

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

联系我们:admin@itzhai.com

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