jalr

Operands

reg, [reg / imm / imm(reg)], imm

Jump and link register: Set t1 to Program Counter (return address) then jump to statement at t2 + immediate

Variants

  • Jump and link register: Set t1 to Program Counter (return address) then jump to statement at t2 + immediate jalr t1, t2, -100
  • Jump And Link Register: Jump to address in t0 and set the return address to ra jalr t0
  • Jump And Link Register: Jump to address in t0 and set the return address to ra jalr t0, -100
  • Jump And Link Register: Jump to address in t1 and set the return address to t0 jalr t0,-100(t1)
# jalr saves the next instruction address (0x00400010) in ra. link_marker is that skipped instruction; t2 ends at 1.
.text
li t2, 0
la t3, done
jalr ra, 0(t3)
link_marker:
addi t2, t2, 100
done:
addi t2, t2, 1