Микропроцессорная техника: практический курс : учебное пособие для студентов Физико-технологического института, обучающихся по направлениям подготовки "Ядерная физика и технологии", "Биомедицинская инженерия"


Порядок следования байтов в многобайтовых данных


Download 0.63 Mb.
Pdf ko'rish
bet52/74
Sana29.03.2023
Hajmi0.63 Mb.
#1306393
1   ...   48   49   50   51   52   53   54   55   ...   74
Bog'liq
978-5-321-02171-21 2012 (1)

Порядок следования байтов в многобайтовых данных. К сожале-
нию, не существует единого стандарта на порядок следования (разме-
щения в памяти по возрастанию адресов) байтов. Исторически сло-
жилось несколько альтернативных подходов к размещению байтов в
памяти.
1. Интеловский порядок (Intel order или little-endian) – это запись
многобайтных данных «младшими байтами вперед». При этом млад-
ший байт записывают по самому младшему адресу, остальные байты
записывают подряд по возрастанию адресов в порядке возрастания
старшинства байтов. Этот порядок записи принят в операционной
системе Windows, в персональных компьютерах с x86-процессорами.
Возьмем для примера 32-битное целое значение в шестнадцатерич-
ном коде 57415244H. Это число будет размещено в памяти по возрас-
танию адресов таким образом:
áÄÒÅÓ
+0
+1
+2
+3
ä×ÏÉÞÎÙÊ 01000100 01010010 01000001 01010111
HEX
44H
52H
41H
57H
Существенным достоинством little-endian по сравнению с другими по-
рядками записи считается возможность «неявной типизации» целых
чисел при чтении меньшего объёма байтов (при условии, что читаемое
число помещается в диапазон). Так, если в памяти содержится число
00000022H, то прочитав его как двухбайтовое целое, мы получим чис-
ло 0022H, прочитав один байт – число 22H.
2. Мотороловский порядок (Motorola order или big-endian) – это за-
пись многобайтных данных «старшими байтами вперед». При этом
старший байт записывают по самому младшему адресу, остальные
байты записывают подряд по возрастанию адресов в порядке убыва-
ния старшинства байтов.
Этот порядок является стандартным для протоколов TCP/IP, он
используется в заголовках пакетов данных и во многих протоколах
более высокого уровня, разработанных для использования поверх
TCP/IP. Поэтому порядок байтов от старшего к младшему часто назы-
вают сетевым порядком байтов (network byte order). Этот порядок бай-
тов используется операционной системой UNIX, процессорами IBM
360/370/390, Motorola 68000, SPARC.
Возьмем для примера 32-битовое целое значение в шестнадцате-
ричном коде 57415244H. Это число будет размещено в памяти по воз-
растанию адресов таким образом:
áÄÒÅÓ
+0
+1
+2
+3
ä×ÏÉÞÎÙÊ 01010111 01000001 01010010 01000100
HEX
57H
41H
52H
44H
93


4. Стандартные библиотеки Keil µVision
3. Смешанный порядок (middle-endian) иногда используется при ра-
боте с числами, длина которых превышает машинное слово. Произво-
дится факторизация числа не на байты, а на машинные слова, которые
записываются в формате, естественном для данной архитектуры, но
сами слова записываются в обратном порядке.
Классический пример middle-endian – представление четырехбай-
товых целых чисел на 16-битовых процессорах семейства PDP-11 (спо-
соб известен как «PDP-endian»). Для представления двухбайтовых зна-
чений использовался порядок big-endian, но четырехбайтовое двойное
слово записывалось от младшего слова к старшему. В процессорах
VAX
и ARM используется также смешанное представление для длинных
вещественных чисел.
Возьмем для примера 32-битовое целое значение в шестнадцате-
ричном коде 57415244H. Для PDP-endian это число будет размещено
в памяти по возрастанию адресов таким образом:
áÄÒÅÓ
+0
+1
+2
+3
ä×ÏÉÞÎÙÊ 01000001 01010111 01000100 01010010
HEX
41H
57H
44H
52H
Термины big-endian и little-endian первоначально не имели никакого
отношения к информатике. В сатирическом произведении Джонатана
Свифта «Путешествия Гулливера» описываются вымышленные госу-
дарства Лилипутия и Блефуску, в течение многих лет ведущие между
собой войны из-за разногласия по поводу того, с какого конца следует
разбивать варёные яйца. Тех, кто считал, что яйца нужно разбивать с
тупого конца, в произведении называли «Big-endians» («тупоконечни-
ки»). Споры между сторонниками big-endian и little-endian в информа-
тике также часто носят характер «религиозных войн».

Download 0.63 Mb.

Do'stlaringiz bilan baham:
1   ...   48   49   50   51   52   53   54   55   ...   74




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling