組合語言共筆 17 : ARM Function Calling Convention
簡介
ARM Function Calling Convention (暫存器呼叫慣例)
是指在做函數呼叫時,每個 Register 中存的資料會依照慣例來儲存
以方便函數呼叫的進行
Calling Convention
現在常用的 ARM Register Calling Convention 是 EABI,
規範如下
- r0-r3 : 會儲存前四個要傳入函數的引數,
- r4-r11 : 存在 r4-r11 的參數如果也要傳入 Function 做引數,要 push 到 stack 中
- r12 (ip) : 會作為程序內臨時調用的暫存器
- r13 (sp) : stack pointer,會指向 stack 現在頂部所在位置
- r14 (lr) : 會儲存函數回傳位置
- r15 (pc) : 會儲存下一個要執行的指令位置