硬盘MBR全面分析(3)

时间:2011-08-09 14:47来源:www.jdcok.com 作者:服务器数据恢复

0635 7416       JZ GOOD_PARTITION_TABLE 搜索完毕,剩下的分区中无活动分区,分区表正常
0637 382C       CMP [SI],CH                        
0639 74F6       JZ ONLY_ONE_ACTIVE_PARTITON_SEARCH_LOOP 如果还有活动分区则继续向下执行
INVALID_PARTITION_TABLE:
063B BE1007        MOV SI,0710 SI指向要显示的错误信息处
HANG_MACHINE_LOOP:
063E 4E          DEC SI                              
DISPLAY_ERROR_MESSAGE_LOOP:
063F AC          LODSB
0640 3C00       CMP AL,00                           
0642 74FA       JZ HANG_MACHINE_LOOP
;到字符串尾时进入死循环,停止运行
0644 BB0700        MOV BX,0007                        
0647 B40E       MOV AH,0E                           
0649 CD10       INT 10 显示错误信息
                       
DISPLAY_ERROR_MESSAGE_LOOP_ALIAS:
064B EBF2       JMP DISPLAY_ERROR_MESSAGE_LOOP
GOOD_PARTITION_TABLE:
064D 894625        MOV [BP+25],AX
                               tmpvar=BP+25处清零,作为临时变量
0650 96          XCHG SI,AX SI=0
0651 8A4604        MOV AL,[BP+04]
;读分区类型入AL
0654 B406       MOV AH,06                           
0656 3C0E       CMP AL,0E 类型 WIN95: DOS 16-bit FAT, LBA-mapped
0658 7411       JZ TYPE_WIN95_DOS_16BIT_FAT_LBA
065A B40B       MOV AH,0B                           
065C 3C0C       CMP AL,0C 类型 WIN95 OSR2 32-bit FAT, LBA-mapped                        
065E 7405       JZ TYPE_WIN95_OSR2_32BIT_FAT_LBA
0660 3AC4       CMP AL,AH 类型 WIN95 OSR2 32-bit FAT
0662 752B       JNZ TYPE_DEFAULT
0664 40          INC AX AX=0B0C
TYPE_WIN95_OSR2_32BIT_FAT_LBA:
0665 C6462506    MOV BYTE PTR [BP+25],06
;tmpvar=06
0669 7524       JNZ TYPE_DEFAULT
;这里有点问题,这个转移应该肯定不成立?
TYPE_WIN95_DOS_16BIT_FAT_LBA:
066B BBAA55        MOV BX,55AA                        
066E 50          PUSH AX                              
066F B441       MOV AH,41                           
0671 CD13       INT 13    int 13h扩展功能的检测,IBM/MS INT 13 Extensions - INSTALLATION CHECK
0673 58          POP AX                              
0674 7216       JB INT13H_EXTENSION_UNSUPPORTED
;CF=1 - 不支持int 13h扩展功能
0676 81FB55AA    CMP BX,AA55 BX不为AA55 - 不支持int 13h扩展功能                         
067A 7510       JNZ INT13H_EXTENSION_UNSUPPORTED
067C F6C101        TEST CL,01 CL不为1 - 不支持int 13h扩展功能
067F 740B       JZ INT13H_EXTENSION_UNSUPPORTED
硬盘MBR全面分析(3) www.jdcok.com/anli/5/589.html
------分隔线----------------------------
分享到: