ARM 的返回值也是通过 R0 寄存器返回
例子 int fun() { return 16; } int main() { int a; a = fun(); return 0; }
汇编
fun:
movs r3, #16
# 保存返回值到 r0
mov r0, r3
bx lr
main:
push {lr}
sub sp, sp, #12
# 调用函数
bl fun
# 保存返回值 r0 到局部变量
str r0, [sp, #4]
movs r3, #0
mov r0, r3
add sp, sp, #12
@ sp needed
ldr pc, [sp], #4