我想知道在ARM汇编中我可以使用哪条指令分支到某个内存地址中存储的地址或标签。
例如,我们可以使用B LABEL跳转到LABEL。但是,现在只能在运行时知道目标,并且将其存储在某个已知的存储位置中,是否有类似B [address]的内容?
谢谢!
最佳答案
是否有类似B [地址]的内容?
否。首先将地址加载到寄存器中,然后使用BX
跳转到该地址:
@ In this example, R0 points to the address to jump to
LDR R1, [R0]
BX R1
您也可以将地址直接加载到
PC
中(尽管我不确定这在所有ARM体系结构中是否都有效,因此请查阅相关的参考文档):@ In this example, R0 points to the address to jump to
LDR PC, [R0]