我已经获得了一个术语结束项目来编写汇编代码来读取MBR并将其保存到软盘中。我想我设法用DOS中的INT 13h在virtualBox机器中读取它。该机器只有一个硬盘,其中一个分区安装了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
提前致谢。
答案 0 :(得分:2)
您正在看到启动加载程序的一部分。这是存储在驱动器的第一个扇区中的一个程序,它的作用是读取分区表并开始启动操作系统。如果失败,它会显示您刚刚找到源的错误消息......“垃圾”的其余部分将是引导加载程序的代码(在机器代码中),您需要对其进行反汇编以使其有意义
答案 1 :(得分:2)
这是正常的,“垃圾”是组成MBR的机器代码,如果MBR代码在尝试启动PC时遇到一些问题,则会显示各种错误字符串。对MBR代码的完整分析正好在您所说的页面上。