二次ローダのロード先とジャンプ先

ちょっと、繰り返しになるかもしれないけれど、用語が混乱しないように、再確認。
一次ローダとは、ブートセクタに含まれるコード。
ブートストラップローダとかIPLとか呼ばれる事もあるけれど、
用語が様々のようなので、僕は、一次ローダと呼ぶ事にしています。
正式な呼び方は、色々と調べてみましたが、イマイチ分かりませんでした。


二次ローダは、一次ローダによってロードされたコードの事です。
NTLDRやLILOは、正にローダなんですけれど、
場合によっては、ローダとしての働きを含まない場合もあり得ます。
面倒なので、ひっくるめて、二次ローダと呼んでいます。
この辺も、混乱し易いので、気を付けて下さい。


はりぼての一次ローダ(ipl10.nas)では、10シリンダ分の内容をロードしています。
これには、FAT情報及びルートディレクトリエントリも含まれます。
ロード先は、0820:0000。
二次ローダのコードは、先の調査より、34セクタ目から格納されているはず。
ロード先に、FAT1, FAT2, ルートディレクトリエントリとロードされ、
34セクタ目は、ロード先アドレスから、オフセット32セクタ分のところになる。
32 * 512 = 16384Byte = 4000hByte
となるので、
ロード先のアドレス 0820:0000 から、オフセット 4000h の位置が、エントリーポイントになる。
よって、ジャンプ先は、C200h となると。