两者之间有什么区别吗:
bl label
和
mov r14, r15
b label
除了方便之外?
(我使用的是 Raspberry Pi,因此 r15 是当前地址 + 8,由于管道的原因)
最佳答案
它可能与您正在做的事情无关,但有一个区别:mov + b
方法与更简单的 bl
方法的计时不同。目标不是 PC 的 mov
需要 1 个周期。 bl
和 b
都采用相同的周期数(取决于分支预测)。
所以,使用
mov r14, r15
b label
需要一个周期长于
bl label
这对于具有严格时序要求的嵌入式应用程序来说可能很重要。 bl label
更清晰,应该使用,如果计时是一个问题,nop + bl
会比 mov + b
更清晰。
关于assembly - ARM,带链接的分支,BL 与 MOV,B,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24272310/