Сборка MIPS: большая и маленькая путаница - PullRequest
2 голосов
/ 12 апреля 2010

Я запустил следующий фрагмент кода на симуляторе MIPS MARS . Этот симулятор немного порядковый. Итак, результаты таковы:

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 

Так что на симуляторе MIPS с прямым порядком байтов значение $ t2 в конце программы равно 0x01DECADE. Если бы этот симулятор был с прямым порядком байтов, какое значение это имело бы? Будет ли 0xDECADE01 или 0x01DECADE?

1 Ответ

6 голосов
/ 12 апреля 2010

Было бы то же самое - порядок байтов в памяти будет другим, но вы увидите, что только если вы загрузите одиночные байты из 200 ($ t1), 201 ($ t1), 202 ($ t1) и 203 ($ t1)

...