------------------------------------------------------------------------
boot.asm 模块文档说明
By 姜江 <Jiang Jiang>
E-mail:jznsmail@tom.com
http://blog.csdn.net/jznsmail
1.模块介绍
==========
该模块是计算机启动后由BIOS自动读取的启动设备的第一个扇区,该扇区占用
512个字节大小,以0x55AA标志结尾.
2.模块功能
==========
1.获取启动设备号,显示启动消息
2.将SETUP模块从磁盘的第2个扇区读取到内存的0x9000:0x0200位置,一共4个
扇区大小.
3.将SYSTEM模块从磁盘的第6个扇区开始读取到内存的0x1000:0x0000位置,一
共24个扇区
4.保存启动设备号,关闭磁盘马达
5.跳转到SETUP模块执行
3.当前内存映象
==============
+--------------+
| |
| .... |
| |
+--------------+ 0x909FF
| |
| setup |
| |
| |
+--------------+ 0x90200
| ... |
+--------------+ 0x90000
| |
| ... |
| |
+--------------+ 0x13000
| |
| system |
| |
+--------------+ 0x10000
| |
| ... |
| |
+--------------+ 0x07E00
| boot |
+--------------+ 0x07C00
| |
| .... | sp -> 0x0FFFF
+--------------+ 0x00000
4.模块使用的BIOS中断
====================
中断号: INT 0x10H
AH = 0x0EH
功能: 显示一个字符,并且光标前移
参数: AL = 字符 BL = 页号
BL = 前景颜色
返回: 无
-----------------------------------------------------------------------
中断号: INT 0x13H
AH = 0x00h
功能: 磁盘复位
参数: DL = 驱动器号(00,01为软盘,80H,81H,...为硬盘)
返回:
失败:
AH = 错误码
-----------------------------------------------------------------------
中断号: INT 0x13H
AH = 0x02H
功能: 读磁盘扇区
参数: AL = 扇区数 CL(bit6,bit7) CH(bit0 - bit7) = 磁道号
CL(bit0 - bit5) = 扇区号
DH = 磁头号 DL = 驱动器号
ES:BS = 数据缓冲区
返回:
成功:
AH = 0 AL = 读取的扇区数
失败:
AH = 错误码
-----------------------------------------------------------------------
中断号: INT 0x16H
AH = 0x00
功能: 从键盘读字符
参数: 无
返回: AL = 字符码 AH = 扫描码
ZF = 0 AL = 字符码
-----------------------------------------------------------------------