私はARM呼び出し規約に従っているサブルーチンを記述する必要があるARMアセンブリを使用しています(これは別の上位レベルの実装と統合する必要がありますそれ以外の場合はパラメータと戻り値を渡します)。ここでは、アセンブリで作業する際に一般的にわからないことがあります。アセンブリ内のサブルーチンのパラメータと戻り値の受け渡し
したがって、私がよく理解すれば、引数はレジスタr0〜r4から順番に渡され、その後、他の引数のスタックが使用されます。戻り値はr0に渡されます。
ここで私は混乱しています。私がr0のコンテキストを保存してからそれをポップすることになっている場合は、結果を返す方法がありません。最初の引数を破損させることによってしか結果を返せません。どういうわけか回避策はありますか? 先生にありがとう!
関数を呼び出す前に、r0のコンテキストを保存するのは呼び出し元の責任であると思います。 – as3rdaccount
投稿したリンクから:* "r0〜r3:サブルーチンに渡された引数値を保持するために使用され、サブルーチン" *から返された結果も保持されます。 – m0skit0