Assembly:

LB rt, offset(rs)

nanoMIPS

Load Byte

Purpose:

Load Byte. Load signed byte to register $rt from memory address $rs + offset (registerplus immediate).

Availability:

nanoMIPS

Format:

LB[U12]

100001

rt

rs

0000

u

6

5

5

4

12

offset = u

LB[16]

010111

rt3

rs3

00

u

6

3

3

2

2

rt = decode_gpr(rt3, 'gpr3')
rs = decode_gpr(rs3, 'gpr3')
offset = u

LB[GP]

010001

rt

000

u

6

5

3

18

rs = 28
offset = u

LB[S9]

101001

rt

rs

s[8]

0000

0

00

s[7:0]

6

5

5

1

4

1

2

8

offset = sign_extend(s, from_nbits=9)

Operation:

va = effective_address(GPR[rs], offset, 'Load')
data = read_memory_at_va(va, nbytes=1)
GPR[rt] = sign_extend(data, from_nbits=8)

Exceptions:

Address Error. Bus Error. TLB Invalid. TLB Read Inhibit. TLB Refill. Watch.