3

アセンブリ コードは次のようになります。

  call next
next:
  popl %eax

call nextリターンアドレスがスタックにプッシュされると思いましたよね?しかし、上記のコードでは、返信アドレスは何ですか?

4

2 に答える 2

5

そのコードが実行された後、%eax はラベル「next」のアドレスを持ちます

  1. 呼び出しは、たまたま次の順次命令であるターゲットに分岐し、常に次の順次命令のアドレスである戻りアドレスをプッシュします。
  2. popl は、リターン アドレスをスタックから %eax レジスタにポップします。

最終的な効果は、ラベル「次」への %eax ポイントです。

于 2012-07-13T00:57:46.523 に答える
2

命令の直後の命令のアドレスですcall。どのように機能するかについては、CPU のドキュメントを参照してくださいcall

于 2012-07-13T00:02:46.433 に答える