ウィキペディアから:
コンピューティングでは、レッド ゾーンは、その関数によって保持されない戻りアドレスを超えた、関数のスタック フレーム内の固定サイズの領域です。呼び出し先関数は、スタック ポインターを変更する余分なオーバーヘッドなしで、ローカル変数を格納するためにレッド ゾーンを使用できます。このメモリ領域は、割り込み/例外/シグナル ハンドラによって変更されません。System V で使用される x86-64 ABI では、128 バイトのレッド ゾーンが義務付けられています。レッド ゾーンは、リターン アドレスの直後から始まり、関数の引数が含まれます。OpenRISC ツールチェーンは、128 バイトのレッド ゾーンを想定しています。
%rspが指す場所を超える 128 バイトの領域は、予約されていると見なされ、シグナルまたは割り込みハンドラによって変更されません。したがって、関数は、関数呼び出し間で必要のない一時データのためにこの領域を使用する場合があります。特に、リーフ関数は、プロローグとエピローグでスタック ポインターを調整するのではなく、スタック フレーム全体にこの領域を使用する場合があります。このエリアはレッドゾーンとして知られています。
これら 2 つの引用符が与えられた場合、レッド ゾーン は積み上げられた返品先住所の上ですか、それとも積み上げられた返品先住所の下ですか?
このレッド ゾーンは に対して相対的なので、それぞれで
RSP
下に移動し、それぞれpush
で上に移動しますpop
か?