标签: assembly arm
我似乎无法理解bx lr的作用以及它与bl(标签)的区别。我知道bl(label)将该函数的返回地址存储在链接寄存器中,但我不知道bx lr的用途。
答案 0 :(得分:21)
bx代表branch and exchange instruction set这意味着根据要转移到的地址的lsb(最低有效位),处理器会将下一条指令视为ARM或拇指。
bx
由于lr通常包含返回地址,这意味着这是函数的返回,如果lr的lsb为1,它将以拇指的形式处理该地址的代码,否则,它会将其视为ARM。
lr