2011-12-27 12 views
4

私はアセンブリ言語の初心者です。 私が知っているように、ESPとSSはどちらもスタックレジスタを参照していますが、それらの違いをあまり理解していません。ESPレジスタとSSレジスタの違いは何ですか?

+1

[メモリのセグメンテーション](http://en.wikipedia.org/wiki/X86_memory_segmentation)についてお読みください。 – cnicutar

+2

SSは32ビットプログラムとは無関係です。これはDSとESのように完全な4ギガバイトの仮想メモリ空​​間をマッピングします。 –

答えて

7

SSはスタックセグメントレジスタです。これは、スタックに使用されるメモリの一般的な領域を指します。 ESPはスタックポインタレジスタです。これは、メモリの「スタックセグメント」領域内の、スタックの「トップ」の任意の点にある正確な位置を示します。

+1

もちろん、Hans Passantが書いたことは真実で、SPの代わりにESPについて話しているので、あなたは32ビットのシナリオを話しているので、SSレジスタについて全く心配する必要はありません。 –

+1

実際、正確に言えば、32ビットCPUでも(64ビットでも)使用することができますが、実際のOSではメモリセグメンテーションは実際には使用されません。 – Maarten