From what I read, the branch with link is used to perform subroutine call and the registered link is copied back to PC.
Branch with link BL
copies the address of the next instruction (after the BL
) into the link register. The branch instruction doesn't. BL
would be used for a subroutine call, so when you want to return to where you were you can branch back to the link register.