bx lr硬件
的做用等同于程序
mov pc,lr异常
即跳转到lr中存放的地址处。gis
那么lr存放的是什么地址呢?
lr就是链接寄存器(Link Register, LR),在ARM体系结构中LR的特殊用途有两种:一是用来保存子程序返回地址;二是当异常发生时,LR中保存的值等于异常发生时PC的值减4(或者减2),所以在各类异常模式下能够根据LR的值返回到异常发生前的相应位置继续执行。
当经过BL或BLX指令调用子程序时,硬件自动将子程序返回地址保存在R14寄存器中。在子程序返回时,把LR的值复制到程序计数器PC便可实现子程序返回。