Encoding:

EXTEND

11110

offset 10:5

offset 15:11

LBU

10100

rx

ry

offset 4:0

5

6

5

5

3

3

5

Format:

LBU ry, offset(rx)

MIPS16e

Load Byte Unsigned (Extended)

Purpose:

Load Byte Unsigned (Extended)

To load a byte from memory as an unsigned value

Description:

GPR[ry] = memory[GPR[rx] + offset]

The 16-bit offset is sign-extended, then added to the contents of GPR rx to form the effective address. The contents of the byte at the memory location specified by the e fective address are zero-extended and loaded into GPR ry.

Restrictions:

None

Operation:

vAddr = sign_extend(offset) + GPR[Xlat(rx)]
(pAddr, CCA) = AddressTranslation (vAddr, DATA, LOAD)
pAddr = pAddrPSIZE-1..2 || (pAddr1..0 xor ReverseEndian2)
memword = LoadMemory (CCA, BYTE, pAddr, vAddr, DATA)
byte = vAddr1..0 xor BigEndianCPU2
GPR[Xlat(ry)] = zero_extend(memword7+8*byte..8*byte)

Exceptions:

TLB Refill, TLB I valid, Bus Error, Address Error