APCS规则介绍
1. 寄存器命名
1.1 r0到r3命名为a1到a4
- r0 ====> a1
… - r3 ====> a4
1.2 r4到r11命名为v1到v8
- r4 ====> v1
… - r11 ====> v8
1.3 r11为fp、r12为ip、r13为sp、r14为lr、r15为pc
- r11 ====> fp
- r12 ====> ip
- r13 ====> sp
- r14 ====> lr
- r15 ====> pc
2. 函数传参
- 参数小于4个用r0-r4进行传参
- 参数大于4个,使用栈进行传递
- 规定r0用来接收返回值
3. 栈的使用规则
ARM规定,栈的使用规则为满减栈
入栈:stmfd sp!,{r0-r12,lr}
出栈:ldmfd sp!,{r0-r12,pc}^