硬盘分区信息显示汇编语言 第3页
表示引导盘
1282:11C0 01 00 0C FE FF FF 3F 00-00 00 4E 44 2D 01 00 01
1282:11D0 C1 FF 0C FE FF FF 0C F5-3C 01 FC 8A 38 01 00 01
1282:11E0 C1 FF 0C FE FF FF 47 80-75 02 F8 93 32 02 00 00
1282:11F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA;分区结束标志0xAA55
相对于01BEH的偏移量
0: 分区状态, 0 = 不活跃, 0x80 = 活跃盘即引导盘标志.
1: 分区起始磁头号
2-3: 分区起始扇区和柱面号, 底字节的低6位为扇区号,
高2位为柱面号的第 9,10 位, 高字节为柱面号的低 8 位
4: 分区类型, 如 0x0C = FAT32, 0x83 = EXT2类型等等, 00 表示此项未用
5: 分区结束磁头号
6-7: 分区结束扇区和柱面号, 定义同前
8-0BH: 本分区已用掉的扇区数
0CH-0FH: 分区大小 (总扇区数)
(二)、为什么要备份硬盘分区表
系统启动过程主要由一下几步组成(以硬盘启动为例):
1. 开机
2. BIOS 加电自检 ( Power On Self Test -- POST )内存地址为 0ffff:0000
3. 将硬盘第一个扇区 (0头0道1扇区, 也就是Boot Sector)读入内存地址 0000:7c00 处.
4. 检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于则转去尝试其他启动介质, 如果没有其他启动介质则显示"No ROM BASIC" 然后死机.
5. 跳转到 0000:7c00 处执行 MBR 中的程序.
6. MBR 首先将自己复制到 0000:0600 处, 然后继续执行.
7. 在主分区表中搜索标志为活动的分区. 如果发现没有活动分区或有不止一个活动分区, 则转停止.
8. 将活动分区的第一个扇区读入内存地址 0000:7c00 处.
9. 检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于则显示 "Missing Operating System" 然后停止, 或尝试软盘启动.
10. 跳转到 0000:7c00 处继续执行特定系统的启动程序.
11. 启动系统 ...
以上步骤中 2,3,4,5 步是由 BIOS 的引导程序(INT 19H)完成. 6,7,8,9,10步由MBR中的引导程序完成.
基本控制权转换协议:
ROM BIOS与硬盘启动的控制协议是主引导程序将硬盘的0头0道1扇区拷贝到0000:7C00处,然后JMP 0000:7C00,这样主引导程序便获得了计算机的控制权。
许多主引导区病毒比如大麻病毒、6.4病毒正是利用这一控制协议来实施对计算机的控制。
(三)、如何读写硬盘分区表
使用DOS功能调用INT 13H 的功能号AH=2(读扇区:用于保存MBR) AX=3(写扇区:用于恢复MBR).
; Int13/2、3 读、写磁盘功能
; al = 扇区数
; ch,cl = 磁道号,扇区号
; dh,dl = 磁头号,驱动器号
; es:bx = 缓冲区地址
三 程序代码
Dseg SEGMENT
MBR DB 512 DUP(?)
DPT EQU 446
DPT2 EQU DPT+16
;------------------------------
PacketSize DB 16
Reserved DB 0
BlockCount DW 1
BufferAddr DD ?
BlockNum DQ 0
;------------------------------
MainCount DW ?,?
;------------------------------
TabHead DB 'Partition Boot System Start(c) End(c) Size(MB)
标签集:TAGS:
回复Comments(0) 点击Count(271)
QuitTip DB 'Press any key to exit . . .
标签集:TAGS:
回复Comments() 点击Count()
parti DW ?
Fat32 DB 'FAT32
标签集:TAGS:
上一页 [1] [2] [3] [4] [5] [6] 下一页
硬盘分区信息显示汇编语言 第3页下载如图片无法显示或论文不完整,请联系qq752018766