Ninguém mais respondeu POR QUE isso pode ser feito, muitas coisas sobre as conseqüências.
Considere um processador de 8 bits que pode carregar um único byte da memória em um determinado ciclo de clock.
Agora, se você quiser carregar um valor de 16 bits, digamos, no único registrador de 16 bits que você possui - isto é, o contador de programa, então uma maneira simples de fazê-lo é:
- Carregar um byte do local de busca
- desloca esse byte para a esquerda 8 lugares
- incrementa o local de busca de memória em 1
- carrega o próximo byte (na parte de baixa ordem do registro)
o resultado: você só incrementa o local de busca, você só carrega na parte baixa de seu registro mais amplo, e você só precisa mudar para a esquerda. (Claro que deslocar para a direita é útil para outras operações, por isso este é um pouco espectacular).
Uma conseqüência disso é que o material de 16 bits (byte duplo) é armazenado na ordem Most..Least. Ou seja, o endereço menor tem o byte mais significativo - o big endian.
Se você, ao invés disso, tentasse carregar usando little endian, você precisaria carregar um byte na parte inferior de seu registro grande, depois carregar o próximo byte em uma área de preparação, deslocá-lo e, em seguida, colocá-lo no topo de seu registro mais amplo. Ou use um arranjo mais complexo de gating para poder carregar seletivamente no byte superior ou inferior.
O resultado de tentar usar o little endian é que você precisa de mais silício (switches e portões) ou mais operações.
Em outras palavras, em termos de obtenção de retorno para o dinheirinho nos velhos tempos, você tem mais impacto na maioria das performances e na menor área de silício.
Hoje em dia, essas considerações e praticamente irrelevantes, mas coisas como preenchimento de pipeline podem ainda ser um grande negócio.
Quando se trata de escrever s / w, a vida é freqüentemente mais fácil quando se usa um endereçamento little endian.
(E os processadores big endian tendem a ser big endian em termos de ordenação de byte e little endian em termos de bits-em-bytes. Mas alguns processadores são estranhos e usarão big endian bit ordering e byte ordering). torna a vida muito interessante para o designer h / w que adiciona periféricos mapeados na memória, mas não tem outra conseqüência para o programador.