2009-08-30 4 views
1

C++コンパイラがプログラムで使用するレジスタは何ですか? SPとFPの違いは何ですか?可能であれば、詳細なリファレンスドキュメントを教えてください。コンパイラで起こっている基本的なことを知りたい。 Visual Studioでプログラムの実行中にこれらのレジスタを表示することは可能ですか? あなたの時間と助けに感謝します。 ありがとうございます。 ライトVS C++コンパイラによって使用される異なるプロセッサレジスタは何ですか?

+0

詳細なドキュメントは次のとおりです。http://www.intel.com/Assets/PDF/manual/253665.pdfあなたはそれを求め。 – avakar

+1

これは完全にプラットフォームとコンパイラに依存するため、一般的には答えられません。 – strager

+0

strager、彼は明らかにIA-32を指しています。 – avakar

答えて

0

質問に対する回答は、プログラミングするハードウェアによって異なります。各プロセッサフ​​ァミリには独自のアーキテクチャがあり、したがって独自のレジスタです。

Intelチップ向けには、これは良いreference on Wikipediaです。

-2

このような質問があります。

3

ソースから生成するアセンブラコードを出力するようにコンパイラに依頼することができます。これは、/ FAおよび/ Faコンパイラのコマンドライン引数のmsdn link to /FA compiler argです。
実行時に、デバッガでプログラムを実行しているときに、「レジスタ」ウィンドウを開き、実行中に値がどのように変化するかを見ることができます。 msdn doc about "registers" window
もっと深刻なデバッグをする場合は、組み込みのVSデバッガを使用する代わりに、debugging tools for windowsを使用して学習することをお勧めします。

0

スタックポインタ(SP)は、メモリをポイントし、関数パラメータ、戻りアドレス、ローカル変数などの関数呼び出し関連データを格納するために使用されます。このデータは、各関数呼び出しのスタックフレームを形成し、フレームポインタ(FP)によってポイントされます。実行の各スレッドにはスタックポインタがあります。各関数呼び出しには、独自のスタックフレームとフレームポインタがあります。スタックバックトレースは各ネストされた関数呼び出しのスタックフレームを経由して戻り、各関数呼び出しのパラメータとローカルデータを表示します。

http://en.wikipedia.org/wiki/Frame_pointer#Structure

上記リンクは、より多くの説明及び画像を含んでいます。

関連する問題