Barney
Barney

Reputation: 173

MIPS assembly: big and little endian confusion

I've run the following code snippet on the MIPS MARS simulator. That simulator is little endian. So the results are as follows:

lui    $t0,0x1DE             # $t0 = 0x01DE0000
ori    $t0,$t0,0xCADE        # $t0 = 0x01DECADE 
lui    $t1,0x1001            # $t1 = 0x10010000
sw     $t0,200($t1)          # $t1 + 200 bytes = 0x01DECADE 
lw     $t2,200($t1)          # $t2 = 0x01DECADE 

So on a little endian MIPS simulator, the value of $t2 at the end of the program is 0x01DECADE. If this simulator was big endian, what would the value be? Would it be 0xDECADE01 or would it still be 0x01DECADE?

Upvotes: 3

Views: 10324

Answers (1)

Chris Dodd
Chris Dodd

Reputation: 126526

It would be the same -- the order of the bytes in memory would be different, but you would only see that if you loaded single bytes from 200($t1), 201($t1), 202($t1) and 203($t1)

Upvotes: 7

Related Questions