0

私の目標は、簡単に言えば、Int 13h を使用してディスク パラメータを読み取ることです。

これは基本的に BIOS 呼び出しをインターセプトするため、Windows では直接実行できないことを理解しています。

これまでの私の考えでは、コードを 0x7C00h のメモリ位置に書き直し、Int 19h を使用してウォーム リブートを実行すると、上書きされた 0:7C00h にジャンプし、ディスクを読み取ることができるようになります。パラメーター。

私は正しい軌道に乗っていますか?少なくとも正しい方向を指しているように感じます (願っています)。

前もって感謝します。

4

1 に答える 1

2

ウォーム リブートを行う意味はあまりありません。

プログラムが Windows で実行されている場合、ウォーム リブートを開始できず、Windows のおかげで、アドレス 0x7c00 が物理アドレス 0x7c00 の物理メモリにマップされる可能性は低くなります。

プログラムが DOS で実行されている場合、int 13h再起動せずに直接使用してみませんか?

本当にクリーンなシステム (DOS や Windows ではない) でコードを実行したい場合は、ブート セクタを作成し、ブート可能なフロッピー、CD、またはフラッシュ スティックを作成して、そこからブートします。

于 2013-02-17T02:49:03.287 に答える