0

セクション 6.3.3.1 に示されているとおり。ROM ヘッダー拡張 (PCI ローカル バス仕様 v2.3)、オフセット 0x3h は「INIT 関数のエントリ ポイントです。POST はこの場所に対して FAR CALL を実行します。」、このフィールドの長さは 3 バイトです。

長さが 40448 バイトの PCI Rom イメージがあり、エントリ ポイントのバイトは 0xe9_cf_06 (アドレス 0x3h で 0xe9、アドレス 0x4h で 0xcf、アドレス 0x5h で 0x06) です。このオフセットは、ROM イメージの長さを超えています。どなたか、このフィールドの意味と、それを使用して ROM 上のイメージのエントリ ポイントを特定する方法を説明していただけませんか?

任意の提案をいただければ幸いです。ありがとう!

4

2 に答える 2

1

オフセット03h はエントリポイントであり、エントリポイントのアドレスではありません。これは、BIOS が実際にオフセットにジャンプし、03hそこでコードの実行を開始することを意味します。

ROMは次のようになります。

aa 55 xx e9 cf 06 ...

これらのバイトを0x_e9_cf_06次のように表記しないでください。これは、複数のバイトを整数として解釈しているためです (これは意図したものではありません)。これは Intel であるため、順序が間違っています (Intel はlittle endianです)。

この ROM を逆コンパイラにドロップして、さらに理解を深めることができます。

お分かりのようにE9 CF 06、これは (次の命令JMP 0x06CFから 0x6CF バイトジャンプする) ことを意味します。Intel Instruction Set Reference (Vol. 2)を必ず参照してください。

于 2013-08-28T08:52:33.320 に答える