4

asmキーワードを使用するだけで、文字通りアセンブラーをC ++にドロップできるC ++の本を読んでください。

これは、Visual Studio を使用してアセンブラーを記述したい場合、単純に C++ のメイン メソッドを作成し、そこにアセンブラーをドロップして C++ プログラムとして実行できるということですか? コンパイラは、アセンブラが埋め込まれた C++ を単なるアセンブラ プログラムであるかのように実行しますか?

私の質問は、アセンブラー用の適切な IDE がないことに起因しています。

4

1 に答える 1

4

C++ コンパイラを使用すると、 にない余分なコードがプログラムに追加されますint main()。単純な hello world プログラムを逆コンパイルすると、 とint main()などのいくつかの関数を呼び出して、最終的に. あなたにとって最も興味深いのは、プログラムのコマンドライン引数を取得するための呼び出しでしょう。NASM、FASM、または GAS などのアセンブラーを使用してアセンブリをコンパイルする場合、およびその他の呼び出しを行わないため、プログラマーはコマンド ライン引数を取得する独自の方法を実装する必要があり、初心者には扱いにくい場合があります。 ._set_app_type_getmainargsint main()_getmainargs_getmainargs

__asmキーワードで yourを指定する限りvolatile、コンパイラはアセンブリ コードをいじくり回さず、(その特定のコードを) "アセンブラ プログラム" であるかのように実行します。

アセンブリ用の IDE を探しているなら、私も同じ道をたどってきたと言えます。私は素晴らしい小さな IDE である FASM を使用していますが、Eclipse 用のプラグインや Visual Studio 用のプラグインもありますが、それらを使って良い経験をしたとは言えません。

編集: アセンブリを学習している場合は、おそらくアセンブラで学習したほうがよいことを付け加えたいと思います。アセンブリの一般的な使用法は、C++ またはより高度な言語が使用できない場合に使用されます。そのため、C++ コンパイラとインライン アセンブリ構文に依存するようになると、未加工のアセンブリを記述しようとすると混乱が生じる可能性があります。

于 2012-04-16T02:16:27.910 に答える