bx lr在ARM汇编语言中做了什么?

时间:2014-11-23 02:09:46

标签: assembly arm

我似乎无法理解bx lr的作用以及它与bl(标签)的区别。我知道bl(label)将该函数的返回地址存储在链接寄存器中,但我不知道bx lr的用途。

1 个答案:

答案 0 :(得分:21)

bx代表branch and exchange instruction set这意味着根据要转移到的地址的lsb(最低有效位),处理器会将下一条指令视为ARM或拇指。

由于lr通常包含返回地址,这意味着这是函数的返回,如果lr的lsb为1,它将以拇指的形式处理该地址的代码,否则,它会将其视为ARM。