lbz (Load Byte and Zero) instruction
Purpose
Loads a byte of data from a specified location in memory into a general-purpose register and sets the remaining 24 bits to 0.
Syntax
Bits | Value |
---|---|
0-5 | 34 |
6-10 | RT |
11-15 | RA |
16-31 | D |
Description
The lbz instruction loads a byte in storage addressed by the effective address (EA) into bits 24-31 of the target general-purpose register (GPR) RT and sets bits 0-23 of GPR RT to 0.
If RA is not 0, the EA is the sum of the contents of GPR RA and D, a 16-bit, signed two's complement integer sign-extended to 32 bits. If RA is 0, then the EA is D.
The lbz instruction has one syntax form and does not affect the Fixed-Point Exception Register or Condition Register Field 0.
Parameters
Item | Description |
---|---|
RT | Specifies target general-purpose register where result of operation is stored. |
D | 16-bit, signed two's complement integer sign-extended to 32 bits for EA calculation. |
RA | Specifies source general-purpose register for EA calculation. |
Examples
The following code loads a byte of data from a specified location in memory into GPR 6 and sets the remaining 24 bits to 0:
.csect data[rw]
storage: .byte 'a
# Assume GPR 5 contains the address of csect data[rw].
.csect text[pr]
lbz 6,storage(5)
# GPR 6 now contains 0x0000 0061.