Instructions: Data Transfer
Byte operations
lb  $rt, offset($rs) Load sign-extended byte
from memory location to register
lbu $rt, offset($rs) Load zero-extended (unsigned) byte
from memory location to register
sb  $rt, offset($rs) Store the least significant byte of a
register to memory location
What about sbu?
For lb, the address is computed the same way as lw,
but the address does not have to be word aligned.
Addr <-- R[s] + (IR15)16::IR15-0
R[t] <-- (M1[ Addr ]7)24::M1[ Addr ]
Since the value is interpreted as 2C, the fetched byte is sign-extended to 32 bits.
lbu is just like lb except the byte is zero-extended in the register
sb is similar to sw:
M1[ Addr ] <-- R[t]7-0
The least significant byte of register t is copied to the address in memory.
Do we really need to have separate instructions to load, store bytes?