0

GCC を使用して単純な C コードをアセンブリにコンパイルすると、次の出力が得られます。

...
 13         xorl    %eax, %eax
 14         movl    $0, -4(%rbp)
 15         movl    $5, -8(%rbp)
 16         movl    $6, -12(%rbp)
 17         movl    -8(%rbp), %ecx
 18         addl    -12(%rbp), %ecx
 19         movl    %ecx, -16(%rbp)
 20         popq    %rbp
 21         retq

私の質問は、frame base pointer (rbp)を操作する代わりに へのオフセットを使用する理由stack pointer (rsp)です。それがスタックポインタを持つことの要点ではありませんか?

rspこのプロセスのスタックが、値を書き込むときにデクリメントされないため、スタックが使用されていることさえ知らない他のプロセス (例としてガベージ コレクション) によって上書きされた場合はどうなるでしょうか。

4

0 に答える 0