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

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


  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
  0681 8AE0 MOV AH,AL ;AH=0E
  0683 885624 MOV [BP+24],DL
  ;tmpvar=DL,引导分区标志
  0686 C706A106EB1E MOV WORD PTR [06A1],1EEB
  ;改06A1处指令为PUSH DS; JMP NEW_LOCATION_1
  INT13H_EXTENSION_UNSUPPORTED:
  068C 886604 MOV [BP+04],AH
  ;如果支持的话置分区类型为0E(类型 WIN95: DOS 16-bit FAT, LBA-mapped)
  ;否则为06(类型 DOS 3.31+ 16-bit FAT over 32M)
  TYPE_DEFAULT:
  068F BF0A00 MOV DI,000A
  READ_SECTOR_LOOP:
  0692 B80102 MOV AX,0201
  0695 8BDC MOV BX,SP ;BX设置为7C00
  0697 33C9 XOR CX,CX ;CX=0
  0699 83FF05 CMP DI,+05
  069C 7F03 JG NEW_LOCATION_0
  069E 8B4E25 MOV CX,[BP+25]
  NEW_LOCATION_0:
  06A1 034E02 ADD CX,[BP+02]
  06A4 CD13 INT 13 ;将活动分区的起始扇区读到0000:7C00
  NEW_LOCATION_1:
  06A6 7229 JB READ_SECTOR_ERROR
  ;CF=1 - 错误
  06A8 BE5907 MOV SI,0759
  06AB 813EFE7D55AA CMP WORD PTR [7DFE],AA55
  ;扇区结束标志是否正确?
  06B1 745A JZ READ_SECTOR_SUCCEEDED
  ;正确
  06B3 83EF05 SUB DI,+05 ;DI=DI-5
  06B6 7FDA JG READ_SECTOR_LOOP
  06B8 85F6 TEST SI,SI
  06BA 7583 JNZ DISPLAY_ERROR_MESSAGE_LOOP:
  ;显示错误信息:缺少操作系统
  06BC BE2E07 MOV SI,072E
  06BF EB8A JMP DISPLAY_ERROR_MESSAGE_LOOP_ALIAS
  ;显示错误信息:加载操作系统时发生错误。
  070D EB74 JMP CONTINUE_KOAD_OS
  0783 8BFC MOV DI,SP
  ;DI=7C00
  0785 1E PUSH DS
  0786 57 PUSH DI
  0787 8BF5 MOV SI,BP
  0789 CB RETF ;转到执行0000:7C00处的语句,即操作系统的引导程序。

  编辑特别推荐:

  计算机等级考试三级PC技术模拟试题及参考答案一

  计算机等级考试三级PC技术模拟试题及参考答案二

  计算机等级考试三级PC技术模拟试题及参考答案三

上一页123下一页

视频学习

我考网版权与免责声明

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

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

最近更新

社区交流

考试问答