私はbinutilsやgccantに慣れていないので、いくつかの一般的な質問があります。これについては、マニュアルには記載されていません。
Cとアセンブリ(nasm構文)を使用しており、出力に生のバイナリファイルが必要です。まず、コードをパラメーターを使用してobjecファイルにコンパイルします。
cc -nostartfiles -nostdlib -c -ffreestanding <input file(s)> ;cc or gcc no matter
次に、セグメントを必要な順序に並べるだけの簡単なスクリプトを使用して、すべてのファイルをリンクします。
ld -T <script> -o <o.file> <in.file(s)> ;nothing special here
そして、生のバイナリを取得するには、objcopyを使用します
objcopy -O binary <o.file> <in.file> ;can't be simplier
全体として、 .textセグメントと.dataセグメント、および32ビットコードのみを含むバイナリファイルが必要です。
1.この方法で欲しいものを手に入れることはできますか?
2.それを行う他の方法はありますか?(簡単でも複雑でも)
助けてくれてありがとう。
Asmコードのコンパイルに問題はなく、Cコードのほとんどすべての問題があります。