我想知道在 ARM 汇编中我可以使用哪条指令来分支到存储在某个内存地址中的地址或标签。
例如,我们可以使用B LABEL来跳转到LABEL。但现在目的地只能在运行时知道,并且它存储在某个已知的内存位置,有类似 B [地址] 的东西吗?
谢谢!
最佳答案
is there something like B [address]?
没有。首先将地址加载到寄存器中,然后使用 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]
关于assembly - ARM 汇编分支到寄存器或内存内部的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32304646/