私はアセンブリ言語の初心者であり、コンパイラーによって発行されたx86コードは、通常、EBP
レジスターを他の目的に使用できる場合、リリース/最適化モードでもフレームポインターを保持していることに気付きました。
フレームポインタがコードのデバッグを容易にしalloca()
、関数内でが呼び出された場合に必要になる理由を理解しています。ただし、x86にはレジスタがほとんどないため、1つで十分な場合に、スタックフレームの位置を保持するために2つのレジスタを使用することは、私には意味がありません。最適化/リリースビルドでもフレームポインタを省略することが悪い考えと見なされるのはなぜですか?