WEB开发网
开发学院软件开发汇编语言 扩展Int 13H调用规范 阅读

扩展Int 13H调用规范

 2008-04-29 09:34:09 来源:WEB开发网   
核心提示:二.BootSector结构简介1.BootSector的组成BootSector也就是硬盘的第一个扇区,它由MBR(MasterBootRecord),扩展Int 13H调用规范(2),DPT(DiskPartitionTable)和BootRecordID三部分组成,MBR又称作主引导记录占用BootSector的

二.BootSector结构简介

1.BootSector的组成

BootSector也就是硬盘的第一个扇区,它由MBR(MasterBootRecord),DPT(DiskPartitionTable)和BootRecordID三部分组成。

MBR又称作主引导记录占用BootSector的前446个字节(0to0x1BD),存放系统主引导程序(它负责从活动分区中装载并运行系统引导程序)。

DPT即主分区表占用64个字节(0x1BEto0x1FD),记录了磁盘的基本分区信息。主分区表分为四个分区项,每项16字节,分别记录了每个主分区的信息(因此最多可以有四个主分区)。

BootRecordID即引导区标记占用两个字节(0x1FEand0x1FF),对于合法引导区,它等于0xAA55,这是判别引导区是否合法的标志。

BootSector的具体结构如下图所示:

Offset0000H

Offset01BDH

Offset01BEH

Offset01CDH

Offset01CEH

Offset01DDH

Offset01DEH

Offset01EDH

Offset01EEH

Offset01FDH

Offset01FEH

Offset01FFH

MasterBootRecord

主引导记录(446字节)

分区信息1

分区信息2

分区信息3

分区信息4

校验字0xAA55

2.分区表结构简介

分区表由四个分区项构成,每一项的结构如下:

BYTEState   :分区状态,0=未激活,0x80=激活(注意此项)

BYTEStartHead :分区起始磁头号

WORDStartSC  :分区起始扇区和柱面号,底字节的低6位为扇区号,高2位为柱面号的第9,10位,高字节为柱面号的低8位

BYTEType    :分区类型,如0x0B=FAT32,0x83=Linux等,00表示此项未用(注1)

BYTEEndHead  :分区结束磁头号

WORDEndSC   :分区结束扇区和柱面号,定义同前

DWORDRelative :在线性寻址方式下的分区相对扇区地址(对于基本分区即为绝对地址)

DWORDSectors  :分区大小(总扇区数)

注意:在DOS/Windows系统下,基本分区必须以柱面为单位划分(Sectors*Heads个扇区),如对于CHS为764/255/63的硬盘,分区的最小尺寸为255*63*512/1048576=7.844MB。

3.扩展分区简介

由于主分区表中只能分四个分区,无法满足需求,因此设计了一种扩展分区格式。基本上说,扩展分区的信息是以链表形式存放的,但也有一些特别的地方。

首先,主分区表中要有一个基本扩展分区项,所有扩展分区都隶属于它,也就是说其他所有扩展分区的空间都必须包括在这个基本扩展分区中。对于DOS/Windows来说,扩展分区的类型为0x05。

除基本扩展分区以外的其他所有扩展分区则以链表的形式级联存放,后一个扩展分区的数据项记录在前一个扩展分区的分区表中,但两个扩展分区的空间并不重叠。

扩展分区类似于一个完整的硬盘,必须进一步分区才能使用。但每个扩展分区中只能存在一个其他分区。此分区在DOS/Windows环境中即为逻辑盘。因此每一个扩展分区的分区表(同样存储在扩展分区的第一个扇区中)中最多只能有两个分区数据项(包括下一个扩展分区的数据项)。

扩展分区和逻辑盘关系请参考注1。

上一页  1 2 3 4 5 6  下一页

Tags:扩展 Int 调用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接