C 関数は、呼び出しスタック (スタック フレーム) を使用して、関数呼び出しの前後にレジスタをプッシュ/ポップします。ebp がスタック上のすべての変数を参照するために使用されるフレーム ポインターである場合、esp は冗長に見えますか?
では、なぜ関数呼び出しのプロローグ/エピローグで、esp と ebp の両方を操作するのでしょうか? この仕事をするために1つのレジスターだけを使用すると、不便な場所はありますか?
ありがとう。
C 関数は、呼び出しスタック (スタック フレーム) を使用して、関数呼び出しの前後にレジスタをプッシュ/ポップします。ebp がスタック上のすべての変数を参照するために使用されるフレーム ポインターである場合、esp は冗長に見えますか?
では、なぜ関数呼び出しのプロローグ/エピローグで、esp と ebp の両方を操作するのでしょうか? この仕事をするために1つのレジスターだけを使用すると、不便な場所はありますか?
ありがとう。