You may look into Wikipedia or short summary for students. Everybody says that there are two instructions for the same thing. But nobody tells why?
Branches (b
) use a PC-relative displacement while jumps (j
) use absolute addresses. The distinction is important for position-independent code. Also, only jumps can be used for indirect control transfer (jr
, using a register value).