WEB开发网
开发学院软件开发汇编语言 汇编仿FDISK及PQMAGIC列出分区逻辑盘符的prw.asm实... 阅读

汇编仿FDISK及PQMAGIC列出分区逻辑盘符的prw.asm实现

 2007-11-13 09:31:21 来源:WEB开发网   
核心提示:PBS片断:0~2:JMP引导程序3~0AH:厂,sys_ver(BPB首)0BH~0CH:每扇bytes0DH:每簇扇数0EH~0FH:保留区扇数10H:FAT份数11H~12H:F16根目录32字节项的数目,F32:0.13H~14H:软盘,32M内硬盘:分区总扇数15H:介质,软盘:F0H,硬盘:F8H16H~1

 
 PBS片断:
 
 0~2:JMP引导程序
 3~0AH:厂,sys_ver
 (BPB首)0BH~0CH:每扇bytes
 0DH:每簇扇数
 0EH~0FH:保留区扇数
 10H:FAT份数
 11H~12H:F16根目录32字节项的数目,F32:0.
 13H~14H:软盘,32M内硬盘:分区总扇数
 15H:介质,软盘:F0H,硬盘:F8H
 16H~17H:软盘,32M内硬盘:每FAT占用扇
 18H~19H:每道扇数
 1AH~1BH:磁头数
 1CH~1FH:此分区之前隐藏扇数
 20H~23H:32M外硬盘:分区总扇数
 24H~27H:32M外硬盘:每FAT占用扇
 40H:磁盘BIOS,1st硬盘:80H,软盘:0
 47H~51H:vol
 52H~59H:file_sys
 
 软盘6.22的io.sys,最先分得簇,如目录项0基第13字,指向1e,此12BIT的项值,是1f0002,指明01f->020->...->fff链.
 
 分区标识值:
 
 闲置:0
 DOS主分区:1,4,6,0bh,0ch,0eh
 DOS扩展分区:5,0fh
 非DOS分区:其它
 
 笔者用P,对硬盘划分4个DOS主分区,再prw,读此盘(0:0:0)到文件0,用debug,改分区vol值为2,用prw,回写0到(0:0:0),P的分区info页,显vol对应XENIX.
 
 释意,见"(7) 文"的FAT
 
 若vol<20H,则高4位,1/0表示隐藏/非隐藏,后缀X,用于扩展i13接口.
 
 各硬盘,均含0:0:1(chs)的1扇MBR,其偏移1be字节,连续存4个分区表.
 
 各硬盘,最多1个DOS扩展分区,其内,能划分称为逻辑分区的数个DOS主分区,非DOS分区.
 
 逻辑分区串成链.例如,vol=5的扩展分区E,先含1个DOS主分区D,后含1个非DOS分区N,则E的Front域值F,是E内的各逻辑分区位置基址,F指明扇区S1,而S1的偏移1be字节,是D的分区表,偏移1ce字节,其vol=0fh,表示DOS扩展分区,其Front域值,加上基址F,指明扇区S2,而S2的偏移1be字节,是N的分区表,偏移1ce字节,其vol=链尾0.
 
 (4) 仿F$及P$,列出分区逻辑盘符:
 
 盘符,C:~Z:列出.用F$,P$,能建数个逻辑分区
 
 分区超过Z:符时,F$照列,P$不赋盘符,prw赋^符
 
 活跃分区数>1时,引导错,但F$及prw照列,P$显错
 
 F$,P$,依vol域,查以下3步,每步,查80h至83h:
 
 (1) 查DOS主分区
 若是,则查bootON是否80H,若是,此分区就占1个逻辑盘符,若无活跃主分区,表项在MBR首现的主分区,就占1个逻辑盘符.
 
 例如,3硬盘,80h的第1,3分区是主分区,但第3分区活跃,则第3分区占盘符C:.而81h,只含DOS扩展分区,其上,含1个DOS主分区及1个非DOS分区;82h的第2,4分区是不活跃主分区,则最先在MBR中出现的第2分区,占盘符D:
 
 (2) 查DOS扩展分区
 按逻辑分区在链上次序,查它是否DOS主分区,若是,就占盘符,81h的DOS扩展分区上的DOS主分区,占盘符E:
 
 (3) 查未占过盘符的DOS主分区及非DOS分区
 按MBR中,分区表项出现的先后次序,查分区是否DOS主分区,若是,且它未占过盘符,就占盘符.80h的第1分区,占盘符F:,82h的第4分区,占盘符G:
 
 F$,P$,prw,不给非DOS分区赋盘符,仅显In值.

上一页  1 2 3 4  下一页

Tags:汇编 FDISK PQMAGIC

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