私は ARM アセンブリを使用しています。ここでは、ARM 呼び出し規則に従っているサブルーチンを 1 つ作成する必要があります (これは、別の場所で別の高レベルの実装と統合する必要があります)。パラメーターと戻り値を渡します。
ここで、アセンブリを操作するときに一般的にわからないことがあります。
したがって、規則から、引数がレジスタ r0 - r4 から順に渡され、他の引数スタックが使用されることをよく理解している場合。戻り値は r0 に渡されます。
今ここに私が混乱しているものがあります。r0 のコンテキストを保存してからポップオフすることになっている場合、結果を返す方法はありません。これを行う唯一の方法は、最初の引数を破損することです。
どういうわけか回避策はありますか?