一个最简单的系统引导扇区的实现方法(Boot Sector)
本文由发表于6年前 | 操作系统 | 评论数 1 |  被围观 5,795 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 Java技术交流群:280755654,入门群:428693174 more
分享到:
 
2011 5/1
文章评论
    一条评论
  1. fk 2014年11月09日20:26:54  #-49楼 回复 回复

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

给我留言

有人回复时邮件通知我
操作系统的相关文章
随机文章 本月热门 热评
1 ExtJS的FileUploadField组件上传多个文件 2011/5/8
2 Hibernate一对一唯一外键关联映射的实现方法实例 2011/9/4
3 Eclipse的Javascript校验卡住的问题 2014/7/15
4 关于学习新技术的方法和让自己不断进步的一点建议 2011/5/27
5 Struts2单选按钮标签s:radio的使用及其设置默认值 2011/9/10
6 Java基础笔记 – Java中的Exception异常 自定义异常 2011/11/2
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

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

联系我们:admin@itzhai.com

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