1

私は、MBR を読み取ってフロッピーに保存するためのアセンブリ コードを作成するという期末プロジェクトを与えられました。virtualBoxマシンのDOSでINT 13hでなんとか読み取れたと思います。マシンには、XP がインストールされた 1 つのパーティションを持つ 1 つのハード ディスクしかありません。MBR を読み取って印刷すると、大量のジャンクが表示され、ジャンクの中に次のように表示されます: 無効なパーティション テーブル。オペレーティング システムの読み込み中にエラーが発生しました... この Web サイトのように: 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

ブートローダーの一部が表示されています。これは、ドライブの最初のセクターに格納されているプログラムの一部であり、パーティション テーブルを読み取って OS の起動を開始する役割を果たします。これが失敗した場合、ソースを見つけたエラーメッセージが表示されます...残りの「ジャンク」はブートローダーのコード(マシンコード)であり、理解するには逆アセンブルする必要があります.

于 2010-01-02T14:20:54.267 に答える
2

通常、「ガベージ」は MBR を構成するマシン コードであり、PC の起動中に MBR コードで問題が発生した場合に表示されるさまざまなエラー文字列があります。MBR コードの完全な分析は、まさにあなたが言ったページにあります。

于 2010-01-02T14:23:26.697 に答える