assembly - What exactly does the lb instruction do? -
i have exam coming up, , 1 of practice problems was:
assume $t0
contains value 0x12121212
, $t1
contains address 0x1000000
.
assume memory data, starting address 0x1000000
is: 88 77 66 55
.
what value of $t0
after next code executed:
lb $t0, 0($t1)
a) 0x00000088
b) 0x88121212
c) 0xffffff88
d) 0x12121288
the reply gave a
, because byte lb
instruction read (by understanding of instruction does) 88. 88 stored in $t0
, value 0x00000088
. reply given c
. sense have fundamental misunderstanding how lb
works - can please explain why reply c
?
the reply c) 0xffffff88
. lb
instructions sign-extends byte 32-bit value. i.e. important bit (msb) copied upper 24 bits.
0x88 == 0b10001000, i.e. msb 1. upper 24 bits 0b111111111111111111111111 == 0xffffff.
assembly mips
No comments:
Post a Comment