nasmは、-f bin
オプションでマシンコードのみを生成できます。masmでも同じことをしたかったのですが、方法がわかりません。
生成されたオブジェクトコードは常にCOFF形式であるように見え、それをオフにするようなオプションではないようです。
何かアドバイス?
MASM
リンカを使用する必要があります/TINY
が、実行可能ヘッダーの作成をスキップするオプションを使用することで可能です。フラットバイナリファイルであるCOM実行可能ファイルの作成に関するMS情報を参照してください。
http://support.microsoft.com/kb/24954
他の人がすでに言っているように、制限の少ないツールがあります。FASMが私の好みです-デフォルトでフラットバイナリを生成します。:)
できません。しかし、単にバイナリのブロックをファイルに書き込むことが目標である場合は、アセンブラを悪用して支援することが簡単にできます。
2つの部分でアセンブラプログラムを作成します
バイナリブロックとして作成する部分。開始ラベルBLOCKと終了ラベルBLOCKENDを付けます。
実行可能ファイルがロードされたときに制御を取得し、OS(Windowsなど)でブロックを呼び出してファイルに書き込む部分。完了すると、単に終了します。これを行うための実際の呼び出しは、実際に書くのはそれほど難しくありません。このセクションには、50〜100行のコードが含まれている可能性があります。
masmコードをexeに変換し、16進エディターを使用してマシンコードを表示できます。