ОБЪЯСНЕНИЕ обратным и прямым порядком байтов архитектуры

Переводы статьи Переводы статьи
Код статьи: 102025 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

При разработке компьютеров существуют два различных архитектур для Обработка хранения памяти. Они называются Big Endian и прямым порядком байтов и порядок, в котором байты хранятся в памяти. Windows NT была спроектирована с прямым порядком байтов архитектуры и не было разработан для обеспечения совместимости с Big Endian, поскольку большинство программ При написании некоторых зависимостей на прямым порядком байтов.

Дополнительная информация

Эти две фразы являются производными от «@@ Big End В» и «Немного заканчиваться.» Они ссылаются на способ хранения памяти. На компьютерах с процессорами Intel Сначала сохраняется немного end. Это означает, что слово Hex похоже 0x1234 хранятся в памяти как (0x34 0x12). Немного end или нижней границы сохраненные первое. То же самое верно для длиной 4 байта; Например, 0x12345678 будет храниться как (0x78 0x56 0x34 0x12). "@@ Big End В" does Это образом обратного, поэтому 0x1234 будет храниться в виде (0x12 0x34) в памяти. Это метод, используемый компьютерами Motorola, можно также использовать на компьютерах с RISC-процессором. На компьютерах с RISC-процессором MIPS и Компьютеров DEC Alpha настраиваются для Big Endian или прямым порядком байтов. Windows NT работает только в небольшой прямой режим на обоих компьютерах.

Windows NT была разработана с прямым порядком байтов архитектуры. В Слой абстрагирования оборудования (HAL) записывается таким образом, чтобы все работы проблемы, связанные с системой автоматически обрабатываются. Таким образом, Возможно, чтобы создать HAL, который может работать на Big Endian архитектуры. Основные проблемы с перенос кода связана с тем, как код написан для всех программ. Зачастую код написан с предполагается, что используется Big Endian или прямым порядком байтов. Это может не быть определенный уровень HAL; Это может быть что-то же просто, как битовое Маскирование для графики. Для уточнения этой концепции более, два программирования примеров.

Пример 1.

   struct
   {
      WORD y;
      WORD x;
   } POS;

   lparam = (DWORD) POS;
				
По сути является допущения в коде, который выполняется практически прямой используется. Переключение байты полагается на «C» Структура. Это быстрее, на базе архитектуры Intel, но не будет работать с обратным.

Пример 2.

Другим примером является общепринятой практикой использования масок. Ниже приведен пример определения битовой маской.
   #define BITMASK    0x0008
				
Это позволяет проверить, если 4-й бит равен 1, если вы И его с другой номер. Его также можно установить 4-й бит применив или его другим значением. Проблема возникает, когда вы или или И этой с Параметр DWORD (двойное слово), или что-либо кроме слова размер значения. Это приводит к непредсказуемым результатам и странный действий. Разумно предположения о том, как она работает с прямым порядком байтов, но она не работает так же, как с Big Endian. Большой объем кода, уже При создании этих предположений, встроенных в.

Обратите внимание, что микросхемы PowerPC и Sparc также переключаемого между мало Большой и прямой порядок байтов. Однако реализация Apple PowerMac Микросхема PowerPC выходит из режима Big Endian. Следовательно для Windows NT может порта очередь PowerPC, но вряд ли для реализации PowerMac PowerPC.

Свойства

Код статьи: 102025 - Последний отзыв: 1 июня 2011 г. - Revision: 6.0
Информация в данной статье относится к следующим продуктам.
  • операционная система Microsoft Windows NT Workstation 3.1
Ключевые слова: 
kbhardware kbmt KB102025 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:102025

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com