私は i386 リアル モード用の「フリー スタンディング」コードを書いていて、PXE でコードをネットブートしているときに奇妙なエラーに遭遇しました。
PXE-E79: NBP is too big to fit in free base memory
PXE-M0F: Exiting Intel Boot Agent.
バイナリをいじった後、バイナリの後にデータまたはコードがあるとして分離しました
.data
セグメントマーカー。
16進ダンプの後、ldが命令0x0200000
をすべての場所に移動したことがわかりました。
現在、次の方法でフラットビンを生成しています:
ld --oformat binary
質問:
なぜ
ld
これを行うのですか?oformat
これはオプションに固有のものですか?