C++コンパイラがプログラムで使用するレジスタは何ですか? SPとFPの違いは何ですか?可能であれば、詳細なリファレンスドキュメントを教えてください。コンパイラで起こっている基本的なことを知りたい。 Visual Studioでプログラムの実行中にこれらのレジスタを表示することは可能ですか? あなたの時間と助けに感謝します。 ありがとうございます。 ライトVS C++コンパイラによって使用される異なるプロセッサレジスタは何ですか?
答えて
質問に対する回答は、プログラミングするハードウェアによって異なります。各プロセッサファミリには独自のアーキテクチャがあり、したがって独自のレジスタです。
Intelチップ向けには、これは良いreference on Wikipediaです。
このような質問があります。
ソースから生成するアセンブラコードを出力するようにコンパイラに依頼することができます。これは、/ FAおよび/ Faコンパイラのコマンドライン引数のmsdn link to /FA compiler argです。
実行時に、デバッガでプログラムを実行しているときに、「レジスタ」ウィンドウを開き、実行中に値がどのように変化するかを見ることができます。 msdn doc about "registers" window
もっと深刻なデバッグをする場合は、組み込みのVSデバッガを使用する代わりに、debugging tools for windowsを使用して学習することをお勧めします。
スタックポインタ(SP)は、メモリをポイントし、関数パラメータ、戻りアドレス、ローカル変数などの関数呼び出し関連データを格納するために使用されます。このデータは、各関数呼び出しのスタックフレームを形成し、フレームポインタ(FP)によってポイントされます。実行の各スレッドにはスタックポインタがあります。各関数呼び出しには、独自のスタックフレームとフレームポインタがあります。スタックバックトレースは各ネストされた関数呼び出しのスタックフレームを経由して戻り、各関数呼び出しのパラメータとローカルデータを表示します。
http://en.wikipedia.org/wiki/Frame_pointer#Structure
上記リンクは、より多くの説明及び画像を含んでいます。
- 1. GDBレジスタはプロセッサレジスタと異なっていますか?
- 2. Windowsで最もよく使用されるC++コンパイラは何ですか?
- 3. Objective-cのためにXcodeで使用されるコンパイラは何ですか?
- 4. 一時オブジェクトの作成はC++コンパイラによって異なりますか?
- 5. 未定義の動作はC++のコンパイラによって異なりますか?
- 6. 与えられたCコードが異なるコンパイラによって解釈される方法
- 7. なぜこれらの2つの条件はコンパイラによって異なって扱われますか?
- 8. 推奨されなくなったコードを使用することによって発生する異常な問題は何ですか?
- 9. StringBuffer/StringBuilderはコンパイラによって暗黙的に使用されるのはいつですか?
- 10. なぜ私のC++コンパイラはコンパイルされているようですか?
- 11. C#文字列リテラルはコンパイラによって最適化されますか?
- 12. 異なるコンパイラ間で一貫してトリガされる警告?
- 13. CとObjective Cではポインタが異なって使用されていますか?
- 14. はnodeによって使用されるpackage.jsonファイルですか?
- 15. .NET JITコンパイラは、異なるenumでパラメータ化されたジェネリックの異なるコードを生成しますか?
- 16. C++の例外がコンパイラによってチェックされないのはなぜですか?
- 17. コンパイラで使用される関数プロトタイプが間違っていますか?
- 18. Winformsアプリケーションは、Infragisticsコンポーネントとリサイズルーチンを使用すると、異なるコンピュータで異なって表示されます
- 19. Configuration Manager VS 2010を使用して異なるvbsスクリプトによるCustomeアクションMSI
- 20. シェルスクリプトの条件に使用される様々な種類のブレースの異なる用途は何ですか?
- 21. 異なるC++コンパイラのライブラリを混在させる
- 22. stringstream.good()> VSとEclipseコンパイラでの動作が異なります
- 23. C++テンプレートクラスは、コンパイラごとに異なる動作をします。
- 24. 異なるコンパイラを使用すると、dynamic_castとは異なる結果が得られます
- 25. MySQLdb Pythonで使用されるCコンパイラの編集
- 26. WP7のConnectionSettingsTaskがコンパイラによって解決されない
- 27. Mac用Microsoft Officeの作成に使用されるコンパイラはどれですか?
- 28. SWITCHを使用して、どのボタンが押されたかによって異なるインテントを呼び出す
- 29. スタックは何に使用されていますか?なぜ彼らはC++であるのですか?
- 30. コンパイラは異なるポインタをインクリメントする方法をどのように知っていますか?
詳細なドキュメントは次のとおりです。http://www.intel.com/Assets/PDF/manual/253665.pdfあなたはそれを求め。 – avakar
これは完全にプラットフォームとコンパイラに依存するため、一般的には答えられません。 – strager
strager、彼は明らかにIA-32を指しています。 – avakar