# `j`

[RISC-V Documentation](https://asm-editor.specy.app/documentation/risc-v.md) › [Instructions](https://asm-editor.specy.app/documentation/risc-v/instruction.md)

Web page: https://asm-editor.specy.app/documentation/risc-v/instruction/j

**Jump** · Pseudo-instruction

Category: Control flow

Jumps to label.

[RISC-V manual: jal](https://docs.riscv.org/reference/isa/v20260120/unpriv/rv32.html#norm:jal_op)

Used in: [if, else and jump tables](https://asm-editor.specy.app/learn/courses/risc-v/think-in-assembly/if-else-and-jump-tables.md) (RISC-V assembly), [Loops](https://asm-editor.specy.app/learn/courses/risc-v/think-in-assembly/loops.md) (RISC-V assembly), [Arrays and strings](https://asm-editor.specy.app/learn/courses/risc-v/think-in-assembly/arrays-and-strings.md) (RISC-V assembly), [jal, ret and the calling convention](https://asm-editor.specy.app/learn/courses/risc-v/think-in-assembly/jal-ret-and-the-calling-convention.md) (RISC-V assembly), [Floating point and the F and D extensions](https://asm-editor.specy.app/learn/courses/risc-v/think-in-assembly/floating-point-and-the-f-and-d-extensions.md) (RISC-V assembly), [The bitmap display and the keyboard registers](https://asm-editor.specy.app/learn/courses/risc-v/talking-to-the-outside-world/the-bitmap-display-and-the-keyboard.md) (RISC-V assembly), [When an instruction cannot be carried out](https://asm-editor.specy.app/learn/courses/risc-v/talking-to-the-outside-world/exceptions.md) (RISC-V assembly), [The bigger of two numbers](https://asm-editor.specy.app/learn/courses/risc-v/examples/if-else.md) (RISC-V assembly), [Length of a string](https://asm-editor.specy.app/learn/courses/risc-v/examples/string-length.md) (RISC-V assembly), [Reverse a string in place](https://asm-editor.specy.app/learn/courses/risc-v/examples/reverse-a-string.md) (RISC-V assembly)

## Forms

- `j label`
  - `j label` → `jal zero, label`

## Operands

- `label`: A named address in the program, such as the start of a loop or a variable in `.data`.

## Example

```riscv
# j transfers to done; the skipped instruction would add 100 to t2.
.text
li t2, 0
j done
addi t2, t2, 100
done:
addi t2, t2, 1
# t2=1 confirms the named transfer reached done.
```
