Jump помещает определенный адрес в счетчик программы и продолжает выполнение оттуда, однако JAL (переход и ссылка) делает то же самое, но сохраняет адрес возврата в ra, чтобы вы могли продолжить выполнение после завершения подпрограммы, то есть:
int main() {
dosomething();
//code here
}
void dosomething() {
//.....code here
}
dosomething
будет подпрограммой, которая вернется в основной блок и продолжит выполнение