「楽しみ」のために Windows で x64 アセンブリを学習しています。Windows でのx64 呼び出し規約に関する MSDN ドキュメントには、次のように記載されています。
呼び出し元は、呼び出し先にパラメーター用のスペースを割り当てる責任があり、呼び出し先にそれほど多くのパラメーターがない場合でも、常に 4 つのレジスタ パラメーターに十分なスペースを割り当てる必要があります。これは、C のプロトタイプ化されていない関数と、vararg C/C++ 関数のサポートを簡素化するのに役立ちます。
私の関数は C のプロトタイプ化されていない関数でも varargs C/C++ 関数でもないので、ローカル変数のように、関数内の汎用ストレージに(呼び出し直後の変更されていない値を想定して)いつでも[rsp+8]
to を使用できるということですか?[rsp+32]
rsp