小编del*_*tMe的帖子

在ARM上将参数从asm传递到C

我在这个论坛上阅读了很多主题,并在这个主题上找到了很多答案.我实现了从汇编代码中将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代码中的寄存器?

c assembly arm

2
推荐指数
1
解决办法
5148
查看次数

标签 统计

arm ×1

assembly ×1

c ×1