1

我得到了一个期末项目来编写一个汇编代码来读取 MBR 并将其保存到软盘。我想我设法在 virtualBox 机器的 DOS 中使用 INT 13h 读取它。机器只有一个硬盘,一个分区,安装了XP。当我阅读 MBR 并打印它时,它给了我很多垃圾,在垃圾中它说:无效的分区表。加载操作系统时出错......就像在这个网站中一样:http: //mbr.adamsatoms.com 但我的系统启动正常。我是否正确阅读了 MBR。真的是MBR吗?为什么会这样?如果有帮助,这是我的阅读代码的一部分:

        mov dx,80h ; hard disk first drive
        mov cx,1 ; Cylinder & Sector
        mov bx,ds
        mov es,bx
        mov bx,offset result
        mov ax,0201h ; function & sector to be read
        int 13h     

提前致谢。

4

2 回答 2

2

您正在看到引导加载程序的一部分。这是存储在驱动器第一个扇区中的一段程序,它的工作是读取分区表并开始引导操作系统。如果失败,它会显示您刚刚找到源的错误消息...“垃圾”的其余部分将是引导加载程序的代码(在机器代码中),您需要对其进行反汇编才能有意义.

于 2010-01-02T14:20:54.267 回答
2

这很正常,“垃圾”是组成 MBR 的机器码,如果 MBR 代码在尝试启动 PC 时遇到问题,就会显示各种错误字符串。MBR代码的完整分析就在你说的那一页。

于 2010-01-02T14:23:26.697 回答