AArch64 学习 (二) 函数调用 (Function Call Convention)
本系列的第一篇 中介绍了 AArch64 的基础指令、进程内存布局以及基础栈操作 等。本文该系列的第二篇,主要聊聊函数调用,涉及到的就是 Function Call Convention. 初衷还是尽可能 “浅入深出” 地 got 到语言背后的本质,这不是一个手册,所以不是完备的.
1. 我们在聊函数调用的时候在聊什么?
至少我们应该把函数调用的几个问题搞清楚:
- 函数在汇编层是怎么调用的,本质是什么?
- 函数的参数怎么传?
- 返回值写到哪里?怎么传给 caller?
- 调用完之后,怎么返回到原来的位置?
Function Call Convention 其实就是回答这些问题的,接下里我们一一找到答案.