MIPS XSPIM разные порядки завершения путаница

#assembly #mips #endianness #qtspim

Вопрос:

Как первый пользователь MIPS, я, кажется, в замешательстве. У меня есть один одноклассник, который сказал, что XSPIM-это большой эндиан. Однако в Linux это небольшой конечный порядок байтов. Если MIPS может быть литтл-эндианским или биг-эндианским. Есть ли способ узнать в XSPIM, работает ли он на вашей машине как маленький или большой конец?

Комментарии:

1. Реальные процессоры MIPS могут быть сконфигурированы как большие, так и маленькие конечные.

2. используя xspim, он становится большим конечным или маленьким конечным в зависимости от машины

Ответ №1:

SPIM использует конечность машины, на которой он работает. (http://www.dsi.unive.it/~arcb/LAB/spim.htm#Байт порядок)

Вот небольшая программа для проверки работоспособности вашей машины:

 .data
word:      .word 1
bigStr:    .asciiz "Big Endiann"
littleStr: .asciiz "Little Endiann"

.text

main:

la $t0 word
lb $t1 0($t0)

beqz $t1 bigEndian

littleEndian:

    la $a0 littleStr
    addi $v0 $zero 4
    syscall

    jr $ra

bigEndian:

    la $a0 bigStr
    addi $v0 $zero 4
    syscall

    jr $ra
 

Комментарии:

1. как программа может компилироваться без каких-либо , ?

2. По крайней мере, при использовании spim запятые необязательны.