C++ コンパイラを使用すると、 にない余分なコードがプログラムに追加されますint main()
。単純な hello world プログラムを逆コンパイルすると、 とint main()
などのいくつかの関数を呼び出して、最終的に. あなたにとって最も興味深いのは、プログラムのコマンドライン引数を取得するための呼び出しでしょう。NASM、FASM、または GAS などのアセンブラーを使用してアセンブリをコンパイルする場合、およびその他の呼び出しを行わないため、プログラマーはコマンド ライン引数を取得する独自の方法を実装する必要があり、初心者には扱いにくい場合があります。 ._set_app_type
_getmainargs
int main()
_getmainargs
_getmainargs
__asm
キーワードで yourを指定する限りvolatile
、コンパイラはアセンブリ コードをいじくり回さず、(その特定のコードを) "アセンブラ プログラム" であるかのように実行します。
アセンブリ用の IDE を探しているなら、私も同じ道をたどってきたと言えます。私は素晴らしい小さな IDE である FASM を使用していますが、Eclipse 用のプラグインや Visual Studio 用のプラグインもありますが、それらを使って良い経験をしたとは言えません。
編集: アセンブリを学習している場合は、おそらくアセンブラで学習したほうがよいことを付け加えたいと思います。アセンブリの一般的な使用法は、C++ またはより高度な言語が使用できない場合に使用されます。そのため、C++ コンパイラとインライン アセンブリ構文に依存するようになると、未加工のアセンブリを記述しようとすると混乱が生じる可能性があります。