2

ねえ、私はOSの書き込みにかなり興味があります.私は長い間そうでしたが、まだそれを飲み込むことができませんでした. PHP、HTML、AS3.0、C++ など、私が行っている他のすべてにうまく適用できます。問題は - 本当に、特定のブートローダーが必要になるまで、ASM はそれほど興味深いものではありませんでした (GRUB などの他のブートローダーがあることは知っていますが、それは単なる長い話です)。

明らかに、最も重要な部分は、実際にディスクからイメージ セクターに何かを読み取り、そこにジャンプすることです。ただし、INT 0x13 と AH 0x02、つまり。ディスクからのセクターの読み取りが実際には機能していません(または、わかりません)。

だから、私はこの情報を見つけました: クリック

そして、Bochs で少し調べたところ、ディスクに関するセクター、シリンダー、ヘッドの数がすべてわかりました。

さて、それをテストするために、最初のセクターを読み取り、そこからいくつかの文字を出力したいと思いました.

しかし、それはただ...うまくいきません。バッファーを別の場所、メッセージ、別のセクターに配置しようとしています...指定されたポイントのそのような読み取りの例を誰かに見せてもらえますか?

ありがとう。

4

2 に答える 2

0

grub など、知っているブートローダーの 1 つのソース コードを見ることができます。

または、さらに単純です。動作中のインストールの MBR またはブート セクタをファイルに保存し、逆アセンブルします。これは、スペースの制約 (最大 512 バイト) のために最小限の機能しか実行しないローダー コードを提供するため、優れています。

于 2010-07-14T22:04:23.840 に答える
0

ついに手に入れました!

ドライブ番号 (DL) が間違っていたようです... (フロッピーの代わりに) HDD に切り替えたので、0x80 に変更するのを忘れていました。また、セクタ番号は、CH のビット 2 ~ 7 であり、0 ~ 5 ではありません。

:Dとにかくありがとう。

于 2010-07-15T05:54:47.093 に答える