关于ARM64架构下的bl和ret指令

关于bl和ret指令的作用

自己也在摸索学习的过程中,就简单的介绍下它们两个的作用吧,其实bl指令就是会将下一条指令的地址放入lr(x30)寄存器,以及跳转到后面的地址处。

具体过程如下所示
关于ARM64架构下的bl和ret指令

我们去关注下lr寄存器
关于ARM64架构下的bl和ret指令

进入sum函数,lr寄存器的值就改变了
关于ARM64架构下的bl和ret指令

当要去执行ret指令
关于ARM64架构下的bl和ret指令

成功跳转出来
关于ARM64架构下的bl和ret指令

为了去验证ret指令返回的就是地址就是根据lr寄存器来的,做以下的验证,去修改lr的寄存器的值
关于ARM64架构下的bl和ret指令

我们可以看到它又返回到了上面我们修改lr寄存器的位置
关于ARM64架构下的bl和ret指令