私はこのフォーラムで多くのトピックを読み、このテーマに関する多くの回答を見つけました。アセンブリコードからC関数に5つの引数を渡すことができました。これを行うために、私は以下の手順を使用しました:
mov r0, #0
mov r1, #1
mov r2, #2
mov r3, #3
mov r4, #4
STR r4, [sp, #-4]!
BL displayRegistersValue
しかし、今日、私はレジスター全体をC関数に渡して、それらをC構造体に保存しようとしています。私はこの指示で試しました:
STMDB sp!, {registers that i want to save}
私のC関数:
displayRegistersValue(int registers[number_of_registers])
char printable = registers[0] + (int)'0'; // Convert in a printable character
print_uart0(&printable);
しかし、私の表示は良くありません。では、Cコードのレジスタにアクセスするにはどうすればよいですか?