可以使用“BLR”指令来在Aarch64中分支到堆栈上的地址,并使用“STP”指令来保留所有寄存器。
示例代码:
// 保存所有寄存器 STP X29, X30, [SP, #-16]! // 将地址从堆栈中加载到X30寄存器 LDR X30, [SP, #OFFSET] // 分支到地址并保留所有寄存器 BLR X30 // 恢复寄存器 LDP X29, X30, [SP], #16
其中,OFFSET是从堆栈头开始的偏移量,用于存储要分支的地址。
上一篇:AArch64中的SP0和SPn是什么?
下一篇:AArch64(Cortex-A53)- 理解翻译表