bx lr硬件
的做用等同於程序
mov pc,lr異常
即跳轉到lr中存放的地址處。gis
那麼lr存放的是什麼地址呢?
lr就是鏈接寄存器(Link Register, LR),在ARM體系結構中LR的特殊用途有兩種:一是用來保存子程序返回地址;二是當異常發生時,LR中保存的值等於異常發生時PC的值減4(或者減2),所以在各類異常模式下能夠根據LR的值返回到異常發生前的相應位置繼續執行。
當經過BL或BLX指令調用子程序時,硬件自動將子程序返回地址保存在R14寄存器中。在子程序返回時,把LR的值複製到程序計數器PC便可實現子程序返回。