DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 102025 - Última revisão: quarta-feira, 1 de novembro de 2006 - Revisão: 2.1

 

Nesta página

Sumário

Durante a criação de computadores, há duas arquiteturas diferentes para tratamento de armazenamento de memória. Eles são chamados big endian e little endian e referir-se a ordem na qual os bytes são armazenados na memória. O Windows NT foi criado em torno de arquitetura little endian e não foi projetado para ser compatível com big endian porque a maioria dos programas são escritas com alguma dependência em little endian.

Mais Informações

Essas duas frases são derivados do "End de grande em" e "Little termina em." Eles se referem a maneira como no qual memória é armazenada. Em um computador Intel, pouco final é armazenado pela primeira vez. Isso significa que uma palavra hexadecimal como 1234 é armazenada na memória como (0 x 0x34 12). O pouco final ou extremidade inferior, é armazenada primeiro. O mesmo é verdadeiro para um valor de quatro bytes; por exemplo, 0x12345678 deve ser armazenada como (0x78 0x56 0x34 0 x 12). "End de grande em" faz isso de forma inversa, portanto, 1234 seriam armazenadas como (0 x 12 0x34) na memória. Isso é o método usado por computadores Motorola e também pode ser usado em computadores baseados em RISC. Os computadores com base em RISC MIPS e os computadores DEC Alpha são configuráveis para little endian ou big endian. Windows NT funciona apenas no modo little endian nos dois computadores.

Windows NT foi criado em torno de arquitetura little endian. A HAL (Hardware Abstraction Layer) é gravado para que todos os problemas relacionados ao sistema operacional sejam manipulados automaticamente. Portanto, é possível criar um HAL que funcionaria em arquitetura big endian. O problema básico com portar o código tem a ver com a maneira como o código é escrito para todos os programas. Código é freqüentemente escrito com a suposição de que está sendo usado little endian ou big endian. Isso pode não ser específico para o HAL; poderia ser algo simples como máscara de bits para elementos gráficos. Para esclarecer esse conceito mais, execute dois exemplos de programação.

Exemplo 1

   struct
   {
      WORD y;
      WORD x;
   } POS;

   lparam = (DWORD) POS;
				
Basicamente, há suposição no código que little endian está sendo usado. A alternância dos bytes será que está sendo usada na estrutura de 'C'. Isso é mais rápido na arquitetura Intel, mas não funcionará com big endian.

Exemplo 2

Outro exemplo é uma prática comum de usar máscaras de bits. A seguir está um exemplo de definir uma máscara de bits:
   #define BITMASK    0x0008
				
isso lhe permite verificar se o bit 4 é um 1 se você e com outro número. Ele também permite que você definir o 4 º bit por ou-vel-lo com outro valor. O problema vem quando você ou ou e valor de tamanho com DWORD (Double Word) ou qualquer coisa diferente de uma palavra. Isso faz com que estranhos serem acontecer e resultados inesperados. Você pode fazer suposições sobre como ele funciona com little endian, mas não funcionará da mesma forma com big endian. Uma grande quantidade de código já é criada com essas suposições internas.

Observe que os chips PowerPC e SPARC também são switchable entre little endian e big endian. No entanto, a implementação do chip PowerPC Apple PowerMac fica preso em modo big endian. Portanto, Windows NT pode porta para o PowerPC, mas provavelmente não para a implementação PowerMac o PowerPC.

A informação contida neste artigo aplica-se a:
  • Microsoft Windows NT Advanced Server 3.1
  • Microsoft Windows NT Workstation 3.1
Palavras-chave: 
kbmt kbhardware KB102025 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 102025  (http://support.microsoft.com/kb/102025/en-us/ )
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store