计算机三级辅导:硬盘MBR全面分析

来源:计算机等级考试    发布时间:2012-08-27    计算机等级考试视频    评论


  7C00 33C0 XOR AX,AX ;AX=0
  7C02 8ED0 MOV SS,AX ;SS=0
  7C04 BC007C MOV SP,7C00 ;SP=7C00
  7C07 FB STI ;中断允许
  7C08 50 PUSH AX
  7C09 07 POP ES ;ES=0
  7C0A 50 PUSH AX
  7C0B 1F POP DS ;DS=0
  7C0C FC CLD ;字符串操作方向:从低到高
  7C0D BE1B7C MOV SI,7C1B ;源地址 DS:SI=0000:7C1B
  7C10 BF1B06 MOV DI,061B ;目的地址 ES:DI=0000:061B
  7C13 50 PUSH AX
  7C14 57 PUSH DI
  7C15 B9E501 MOV CX,01E5 ;共1E5h个字节
  7C18 F3 REPZ
  7C19 A4 MOVSB ;将MBR从0000:7C00移动到0000:0600
  7C1A CB RETF ;跳转到0000:061B处
  PARTITION_SEARCH_LOOP:
  061B BEBE07 MOV SI,07BE ;SI指向分区表的开始
  061E B104 MOV CL,04 ;循环4次,硬盘最多4个主分区
  0620 382C CMP [SI],CH
  0622 7C09 JL ACTIVE_PARTITION_FOUND
  ;分区是活动分区
  0624 7515 JNZ INVALID_PARTITION_TABLE
  ;无效的分区表
  0626 83C610 ADD SI,+10 ;每个分区占用16个字节,SI指向下一个分区
  0629 E2F5 LOOP PARTITION_SEARCH_LOOP
  062B CD18 INT 18 ;分区表搜索完,无活动分区,INT 18h=DISKLESS BOOT HOOK
  ACTIVE_PARTITON_FOUND:
  062D 8B14 MOV DX,[SI] ;下面的搜索保证只存在一个活动分区,否则分区表无效
  062F 8BEE MOV BP,SI ;找到的引导分区标志和开始地址分别存入DX,BP
  ONLY_ONE_ACTIVE_PARTITON_SEARCH_LOOP:
  0631 83C610 ADD SI,+10
  0634 49 DEC CX
  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

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答