精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>○ DOS>>系统资料>>不小心删除了分区表,如何快速算出来?

主题:不小心删除了分区表,如何快速算出来?
发信人: goodfrd(supervisor)
整理人: yangcs(2001-12-06 18:08:40), 站内信件
不小心删除了分区表,如何快速算出来?

原来有C、D,但记不得C盘在哪里结束,D盘从哪开始。
用DISKEDIT 找太慢。 
能确定扩展分区在 X 道 0面第1扇开始。
用DEBUG写个小程序把 X 找出来。(我运行了一下很快就找到了,比 DISKEDIT 快多了) 
假设 X > 800 道(800=320H, CX=20C1) ,程序如下: 
-U0100 
19E2:0100 B80102        MOV     AX,0201 
19E2:0103 BA8000        MOV     DX,0080 
19E2:0106 B9C120        MOV     CX,20C1 
19E2:0109 BB007C        MOV     BX,7C00 
19E2:010C 50            PUSH    AX 
19E2:010D 53            PUSH    BX 
19E2:010E 51            PUSH    CX 
19E2:010F 52            PUSH    DX 
19E2:0110 CD13          INT     13 
19E2:0112 7220          JB      0134 
19E2:0114 81BFFE0155AA  CMP     WORD PTR [BX+01FE],AA55 
19E2:011A 7416          JZ      0132 
19E2:011C 80FDFF        CMP     CH,FF 
19E2:011F 740F          JZ      0130 
19E2:0121 5A            POP     DX 
19E2:0122 59            POP     CX 
19E2:0123 5B            POP     BX 
19E2:0124 58            POP     AX 
19E2:0125 FEC5          INC     CH 
19E2:0127 EBE3          JMP     010C 
19E2:0129 90            NOP 
19E2:012A 90            NOP 
19E2:012B 90            NOP 
19E2:012C 90            NOP 
19E2:012D 90            NOP 
19E2:012E 90            NOP 
19E2:012F 90            NOP 
19E2:0130 CC            INT     3 
19E2:0131 CC            INT     3 
19E2:0132 CC            INT     3 
19E2:0133 CC            INT     3 
19E2:0134 CC            INT     3 

-G=100 
程序运行若停在 134 说明读硬盘出错 
若停在 132 说明已找到,再用D 7C00、U7C00或 DISKEDIT 确认一下 
若停在 130 说明找不到 

找到扩展分区起点后,就可以手工填写分区表了。 


----
欢迎光临良友程序库:http://0d0a.126.com http://f12.my163.com,免费提供我的各种Source Code

兄弟我抛出几块砖,有玉的赶紧亮出来啊!
 

[关闭][返回]