C++ コードからアセンブリに 5 つ以上のパラメーターを渡そうとしています。
C++ 関数は次のようになります。
static float armFunction(float, float, float, float, float);
レジスタ r0 ~ r3 から最初の 4 つのパラメーターを問題なく取得できます。
5 番目の float 引数がスタック上にあり、スタック ポインター sp を使用してアクセスできるはずです。たとえば、次のように 5 番目の引数を r4 にロードしようとします。
ldr r4, [sp]
あるいは:
ldr r4, [sp, #-0x4]
しかし、これは機能せず、アセンブリ コードはスタック破損の出力ですぐに終了します。
私の完全なアセンブリ コードは次のようになります: http://pastie.org/3933875