C++コードはアセンブリコードにコンパイルされますか? C++コードがあれば、アセンブリコードを取得できますか?C++コードはアセンブリコードにコンパイルされますか?
12
A
答えて
14
コードはマシンによって理解されなければならず、VM内で解釈されたり実行されたりしていないため、アセンブラでコードが最初に変換されます。このアセンブリコードは、g ++のコンパイルオプションに-S
フラグを使用して取得できます(もちろんg ++を使用している限り)。
g++ -S -o file.s file.cpp
はすべきことです。
3
コンパイラによって異なります。 C++がコンパイルするものには実際のルールはありませんが、ある時点ではコンピュータ上で実行できるはずです。ほとんどのコンパイラには、アセンブリにコンパイルするためのスイッチがあります。
gccを使用すると、-Sを追加して.asmファイルにコンパイルできます。
Visual Studio用http://codegem.org/2008/10/generate-assembly-from-c-code-in-visual-studio
16
オブジェクトファイルにC++ソース変換するC++コンパイラの大半(十分な制御情報を機械コードを実行可能ファイルにリンクする)を参照。たとえば、実際にgcc
にアセンブリコード(asmソース)を生成させるには、-s
フラグを使用する必要があります。通常、アセンブリは見えません。
しかし、C++標準では、コンパイラから出力される最終形式は必須ではありません。コードを実行するときに特定の方法で動作する必要があります。
実際、最古のC++コンパイラは実際にはCソースコードを生成してコンパイルしました。
masochisticを感じる場合は、C++コンパイラでオブジェクトコード、Javaバイトコード、またはGWBASICを生成させることができます。
関連する問題
- 1. C++コードと生成されたアセンブリコードのリンクを知るには?
- 2. C++コードはコンパイルされません
- 3. C#コードはネイティブバイナリにコンパイルされていますか?
- 4. gccの特定のレジスタを使用せずにCコードからアセンブリコードをコンパイル
- 5. MSVC++でアセンブリコードをコンパイルできますか?
- 6. アセンブリコードはCコードで何を参照していますか?
- 7. アセンブリコードをコンパイルすると、16進バイトコードが表示されます。
- 8. Objective-Cはコンパイル前にCコードに変換されていますか?
- 9. このCコードはなぜコンパイルされますか?
- 10. C++なぜこのコードはコンパイルされますか?
- 11. 次のコードはC/C++でどのようにコンパイルされますか?
- 12. C#コードからアセンブリコードを生成しますか?
- 13. 次のコードは `C++ 03`でコンパイルされますが、` C++ 11`ではコンパイルされません
- 14. アセンブリコードとCコードの両方を表示
- 15. C++でコンパイルされないコードをテストするには?
- 16. CentOS g ++ではC++コードがコンパイルされますが、Visual Studio 2008ではコンパイルされません
- 17. C++コードがMacでgccでコンパイルされていませんか?
- 18. OpenMPコードをCコードにコンパイル
- 19. C++コードのアセンブリコードでstatic_initialization_and_destructionと_GLOBAL__sub_I_main関数の目的はありますか?
- 20. Objective-CコードをCにコンパイル
- 21. Cプログラムのアセンブリコード
- 22. CGColorSpaceCreateDeviceRGBのコードはコンパイルされません
- 23. 私のコードはコンパイルされません
- 24. 先にコンパイルされたコードとネイティブにコンパイルされたコードの違いは何ですか?
- 25. asp.netコアのcshtmlビューからコンパイルされたC#コードを取得するには?
- 26. アセンブリコードがある場合、Cコードが見つからない?
- 27. CヘッダとCUDAコードでCコードをコンパイルするには?
- 28. なぜ私のC++コードは二重に宣言された変数でもコンパイルされますか?
- 29. なぜこの単純なC++コードはコンパイルされませんか?
- 30. なぜこのC#コードはコンパイルされませんか?私の本の中で
JavaバイトコードにC++コードをコンパイルする方法は非常に参考になりますが、単なる質問です。 –
さて、そうするためにコンパイラを書く必要があります。申し訳ありませんが、私はそこにコンパイラがあることを暗示しているわけではありません。 – paxdiablo
MSVCはMSILにコンパイルできます。これは概念的にはJavaバイトコードに似ています。 – MSalters