ARM汇编
ARM汇编中B、BL、BLX指令的使用?
B:跳转
BL:例如BL{cond} label。带链接的跳转,如果条件cond满足,会首先将当前指令的下一条指令的地址拷贝到R14(即LR)寄存器中,然后跳转到label指定的地址处继续执行。这个指令通常用于调用子程序,在子程序的尾部,通过MOV PC, LR返回到主程序中。
BX:例如BX{cond} Rm。带状态切换的跳转,如果条件cond满足,处理器判断Rm的位[0]是否为1,若为1,目标地址处的代码解释为thumb代码;若为0,则将目标地址处代码解释为ARM代码来执行。
Arm处理器采用3级流水线来增加处理器指令流的速度,也就是说程序计数器R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行”的,即PC总是指向当前正在执行的指令地址再加2