[an error occurred while processing this directive]
Да нет, именно от архитектуры процессора.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Oldring 14 ноября 2002 г. 18:27
В ответ на: вообще то если быть точным то это зависит не от конкретной архитектуры машины отправлено net 14 ноября 2002 г. 15:48

Пример: указатель на 32-битный int равен 0x10000. Значение переменной - равный 0x12345678. Что хранится в однобайтовой ячейке памяти по адресу 0x10001? На x86 машинах там хранится 0x56. Потому что в таком порядке int сохраняется из 32-битного регистра в память одной командой. В другом порядке сохранять долго - нужно сохранять по одному байтику. Точно так же int будет представлен и на ARM машине, работающей в little-endian режиме. А если ARM запущен в big-endian режиме, то в этой ячейке будет храниться 0x34. Так же, как и на некоторых других не-интелловских big-endian процессорах. То, что интела little-endian - это просто стечение обстоятельств. От конкретной реализации компилятора это как раз мало зависит: большинство процессоров, в отличие от оригинального ARM, не могут переключать порядок байт. Т. е. если процессор имеет преимущественный порядок байт - компилятору его игнорировать достаточно тяжело.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru