lbu
Load byte unsigned
Loads the byte at the address in the second register plus an offset into the first, zero-extended to the register width.
Used in
- Arrays and stringsRISC-V assembly
- Flappy ASMRISC-V assembly
Forms
lbu , ()
Pseudo-instructions
The processor does not have these forms. The assembler replaces each of them with one or more real instructions. Open a row to see them.
-
Set $t1 to zero-extended 8-bit value from effective memory byte address
-
Load from Address
Operands
t1- Any integer register,
x0tox31, or its named alias, such aszero,t0ort6. imm12- A signed 12-bit immediate,
-2048to2047. t2- An integer register. It may be the same register as
t1. imm- An immediate value: a signed 12-bit value (
-2048to2047) or a 32-bit value (-2147483648to4294967295). The size your value needs decides which real instructions the assembler uses. Open the row to see them for each size. label- A named address in the program, such as the start of a loop or a variable in
.data.
# value is initialized and naturally aligned for this operation.
.data
value: .word 0x017fff80
.text
la t0, value
# The first byte is 0x80; lbu writes 128 to t2.
lbu t2, 0(t0)