我在这个论坛上阅读了很多主题,并在这个主题上找到了很多答案.我实现了从汇编代码中将5个参数传递给C函数.为此,我使用了以下说明:
mov r0, #0
mov r1, #1
mov r2, #2
mov r3, #3
mov r4, #4
STR r4, [sp, #-4]!
BL displayRegistersValue
Run Code Online (Sandbox Code Playgroud)
但是今天我试图将整个寄存器传递给C函数以将它们保存在C结构中.我尝试了这个指令:
STMDB sp!, {registers that i want to save}
Run Code Online (Sandbox Code Playgroud)
我的C功能:
displayRegistersValue(int registers[number_of_registers])
char printable = registers[0] + (int)'0'; // Convert in a printable character
print_uart0(&printable);
Run Code Online (Sandbox Code Playgroud)
但我的表现并不好.那么,我如何访问C代码中的寄存器?