Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MIPS assembly: big and little endian confusion

Tags:

assembly

mips

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?

like image 836
Barney Avatar asked Oct 17 '25 03:10

Barney


1 Answers

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)

like image 63
Chris Dodd Avatar answered Oct 20 '25 09:10

Chris Dodd