0. 概览
我们知道在 MacOS 的 as 汇编器中有一条 ldr 伪指令,使用它我们可以非常方便的将立即数加载到寄存器中。
不过,当 ldr 的源操作数是一个标签(Label)时,就会导致在运行时发生崩溃:
如上图所示,第 21 行指令会导致运行时崩溃。
这是什么原因?又该如何解决呢?
闲言少叙,Let‘s go!!!
1. ldr 伪指令探究
在 MacOS 的 as 汇编器(以下简称 as )中, ldr 指令根据不同使用情境有着不同的功能。
当 ldr 源操作数不以 = 号开头时,它被转换成一条货真价实的 ARM64 机器指令:
ldr x0, [