Формат hex: Что такое HEX-файлы?

Содержание

Чем и как открыть файл HEX

Формат файла hex, сокращённо от «шестнадцатеричный» или «base-16», является структурой необработанных данных, которой следуют все файлы, хранящиеся на вашем компьютере. Хотя буквально каждый документ хранится в этом формате, найти его на ПК практически невозможно. Хотя далеко не все знают, что возможность напрямую изменять необработанные биты и байты на ПК иногда может быть очень полезна.

Чем и как открыть файл HEXЧем и как открыть файл HEX

Что обозначает расширение HEX

Система счисления, которую люди используют для подсчёта, называется десятичной (числа от 0 до 9), и была изобретена персами около 6000 лет назад. В 1950-х или 1960-х годах IBM формализовала шестнадцатеричную систему счисления, которая является коротким способом представления двоичных данных. Вместо использования цифр 0-9, шестнадцатеричное число использует цифры от 0 до F. Достигнув конца числовых «цифр», вы просто увеличиваете число влево на единицу, точно так же, как вы делаете это с системой счёта десятичных чисел.

Файлы с расширением HEX имеют те же свойства, что и двоичные. Все байты размещаются один за другим. Информация об адресе или контрольные суммы не добавляются. Единственная разница с двоичным форматом такова, что каждый байт преобразуется в 2 символа ASCII в диапазоне 0-9 и A-F, представляющие 2 шестнадцатеричные цифры. Эти символы сгруппированы по строкам. Номер пары в строке обычно может варьироваться от 1 до 255, где наиболее общей длиной являются 16 или 32 пары. Каждая строка заканчивается парой CR (ASCII-значение $ 0D) или CRLF (ASCII). Для работы с такими документами требуется специальная программа-редактор хекс-файлов. Она в удобном виде выведет всю информацию и позволит достаточно комфортно её воспринимать и изменять.

Что такое HEX-файлЧто такое HEX-файл

Как открыть файл HEX

Далеко не все являются программистами, и иногда открыть файл с расширением HEX может понадобиться обычному человеку, чтобы посмотреть в нём некую информацию. На самом деле для такой простой задачи вполне достаточно обычного Блокнота – стандартного приложения, которое имеется в любой системе Windows. Ведь этот файл, по сути, является текстовым, просто в нём записана специфическая информация, но обычными символами.

Для этого достаточно кликнуть на файле правой кнопкой мыши, выбрать в меню пункт «Открыть» или «Открыть с помощью», затем «Выбрать из списка установленных программ», а далее просто выбрать стандартный Блокнот. Снимите галочку с пункта «Использовать выбранную программу для всех файлов этого типа» – вдруг вы его потом будете открывать другой программой. Можно просто открыть Блокнот, а файл в него перетащить, и он откроется.

Гораздо удобнее для открытия таких файлов подходит другая версия Блокнота – Notepad++. Скачать можно по этой ссылке. Эта программа также есть у многих, так как более удобна. Но она может к тому же распознавать многие языки программирования и файлы HEX в ней выглядят гораздо удобнее, так как есть выделение цветом. Notepad++ представляет собой как бы примитивный HEX-редактор, и этим можно пользоваться совершенно свободно.

Так выглядит HEX-файл, открытый в Notepad++. В стандартном Блокноте так же, но без цвета.Так выглядит HEX-файл, открытый в Notepad++. В стандартном Блокноте так же, но без цвета.

Так выглядит HEX-файл, открытый в Notepad++. В стандартном Блокноте так же, но без цвета.

А теперь рассмотрим более подробно, для чего может понадобиться открывать, а тем более изменять файлы с шестнадцатеричным содержимым. Кстати, если вы собираетесь делать это часто, то лучше скачайте и установите специальный HEX-редактор – их в Интернете довольно много. Некоторые из них подробнее рассматриваются далее.

Взлом игр и файлов

Популярная причина, по которой вы можете использовать шестнадацтеричный редактор, – взлом игр. Вы можете загрузить документ сохранения игры и изменить сумму денег, например, от 1000 до 1000000 долларов. В более поздних играх всё сделано намного сложнее. Многие современные игры используют либо сжатие, либо шифрование, что во много раз затрудняет декомпиляцию состояния сохранения или игры. Тем не менее, некоторые игры по-прежнему позволяют редактировать определённые переменные, например, Sonic Spinball. В дополнение к просмотру файлов игры, из сохранённого файла иногда можно извлечь другую важную информацию, к которой у вас иначе не было бы доступа. Это сильно зависит от типа файла и того, какую информацию вы ищете, но использование шестнадцатеричного редактора полезно для определения того, что именно находится в документе.

Отладка и редактирование

Наконец, еще одна популярная причина, по которой вы можете использовать шестнадцатеричный редактор, – это если вы программист, и вам нужно отладить код. Вместо того, чтобы возвращаться к перекомпиляции кода, для проверки шаблона может потребоваться простое шестнадцатеричное редактирование. Но для начала обязательно убедитесь, что у вас есть резервная копия, прежде чем изменять какие-либо файлы с помощью шестнадцатеричного редактора.

Какие hex-редакторы использовать

Шестнадцатеричный редактор представляет собой софт, используемый для просмотра и редактирования бинарных файлов. Двоичный документ представляет собой документ, который содержит данные в машиночитаемой форме. HEX-редакторы позволяют изменять содержимое необработанных данных файла. Поскольку шестнадцатеричный редактор используется для редактирования двоичных файлов, их иногда называют двоичным редактором или редактором двоичных файлов. Если открыть документ с помощью шестнадцатеричного редактора, появится сообщение о том, что документ редактируется в шестнадцатеричном формате, а процесс использования шестнадцатеричного редактора называется шестнадцатеричным редактированием. Шестнадцатеричные редакторы отличаются от обычных текстовых рядом функций. Основой шестнадцатеричного редактора является то, что они отображают необработанное содержимое файла. Нет кодирования или перевода в текст – только необработанный машинный код. Во-вторых, номера строк вместо того являются адресом смещения от начала файла. Мы подобрали несколько лучших бесплатных программ для просмотра и редактирования документов HEX.

HxD

HxD – это бесплатный шестнадцатеричный редактор, который может открывать и изменять компьютерный код. Это очень мощная утилита в правильных руках, которая может проверять, сравнивать и диагностировать файлы, диски, образы дисков, память и журналы, а также исправлять ошибки и восстанавливать структуру диска.

HxDHxD

Преимущества:

  • Действительно большие данные – последняя версия HxD обрабатывает большие наборы данных. Если он помещается на диск, HxD сможет его открыть.
  • Стандартные параметры – HxD содержит множество полезных дополнений, таких как генератор контрольных сумм, поддержка нескольких наборов символов, редактор ОЗУ, уничтожитель файлов, разбиение и объединение, неограниченное количество отмен и портативная версия.
  • Экспорт данных – программа экспортирует данные в исходный код (C, C#, Java, Pascal и VB.NET) или в шестнадцатеричные форматы.

Недостатки:

  • Не для неопытного пользователя, но это не недостаток. Программа ориентирована на продвинутых пользователей.

DeltaHex Editor

Один из лучших hex-редакторов на основе библиотеки deltahex. Используйте действие «Открыть как шестнадцатеричный» в главном меню «Файл» или в контекстном меню файлов проекта.

Характеристики:

  • Отображение данных в виде шестнадцатеричного кода, предварительный просмотр текста.
  • «Вставить» и «Перезаписать» режимы редактирования.
  • Поддержка выбора и буфера обмена.
  • Отмена/повтор.
  • Выбор кодировки.
  • Отображение непечатных символов.
  • Коды также могут быть двоичными, восьмеричными или десятичными.
  • Поиск текстового/шестнадцатеричного кода с соответствующей подсветкой.
  • Дельта-режим – изменения сохраняются только в памяти до сохранения.
  • Поддержка огромных файлов.

DeltaHex EditorDeltaHex Editor

Free Hex Editor Neo

Free Hex Editor Neo – это самый быстрый бесплатный редактор двоичных файлов для платформы Windows. Алгоритмы обработки данных Neo Hex Editor чрезвычайно оптимизированы и тщательно настроены для обработки операций с большими файлами.

Характеристики программы:

  • Неограниченное Undo/Redo.
  • Редактировать, Копировать, Вырезать, Вставить, Удалить, Заполнить, Импорт/Экспорт, Вставить шаблон/файл, Изменить размер файла, Смещение к началу, Изменить биты.
  • Поиск и замена шаблонов.
  • Подсветка.
  • Байты, слова, двойные слова, группировка четырёх слов.
  • Шестнадцатеричное, Десятичное, Восьмеричное, Двоичное и т.д. представление данных.
  • Изменение атрибутов файла.
  • Анализ данных буфера обмена.
  • Создание бинарных патчей, поиск/замена регулярных выражений.
  • Многоязычный интерфейс.

Free Hex Editor NeoFree Hex Editor Neo

Функции и возможности утилиты:

  • Статистика и шестнадцатеричный анализатор – модуль анализа двоичных данных позволяет анализировать распределение байтов, символов и строк по шестнадцатеричным дампам и текстовым данным. Анализатор двоичных файлов Neo поддерживает шаблоны следующих типов: шаблоны символов и строк ASCII/Unicode, шаблоны данных Hex, Decimal, Octal, Binary, Float, Double и RegEx (Regular Expression).
  • Графическое представление проанализированных данных в пользовательском интерфейсе Neo – софт поддерживает тепловую карту и визуализацию данных гистограммы. Вы также можете анализировать двоичный документ в форме описательной статистики: среднее значение, дисперсия выборки, стандартное отклонение, стандартная ошибка, эксцесс, асимметрия, медиана, диапазон, минимальное, максимальное, сумма и т.д.
  • Сравнение файлов – Neo представляет собой расширенный инструмент сравнения в шестнадцатеричном формате. Встроенный редактор hex позволяет сравнивать 2 шестнадцатеричных файла, используя два разных алгоритма сравнения: простой (от байта к байту) и алгоритм разности (сопоставление блоков).
  • Редактор ОЗУ – модификатор процесса позволяют редактировать память и обрабатывать данные, загруженные в ОЗУ ПК операционной системой. RAM Explorer предоставляет возможность легко просматривать загруженные процессы и переходить к определённым смещениям. Затем вы можете напрямую обращаться к этим блокам данных и редактировать их в окне шестнадцатеричного редактора. Таким образом, Hex Editor Neo предоставляет возможность просматривать и редактировать данные бинарных программ прямо в оперативной памяти.
  • Дизассемблер – программа также позволяет разбирать исполняемые файлы x86, x64 и .NET. Neo Assembler View поддерживает следующие наборы инструкций: x86, x86-64, MMX, SSE, SSE2, 3DNow!, MSIL. Вы можете загружать файлы символов как для 32-битных, так и для 64-битных исполняемых файлов. Neo – просто идеальный редактор dll/exe!
  • Двоичные шаблоны/редактор структуры – программа поддерживает синтаксический анализ внутренней структуры следующих файлов: exe, dll, sys, ocx, bmp, png, avi, rar, icc, vhd, zip, tiff, wav, tga, psd, pic, pcx, pal, emf EPS.
  • Модуль Structure View – позволяет настраивать двоичные шаблоны. Вы можете написать своё собственное определение структуры файла, используя внутренний язык, подобный C/C++, почти для любого двоичного документа. Например, если вы хотите редактировать файлы данных, вам нужно сначала описать файловую структуру, а затем привязать её к конкретному файлу, используя специальное окно редактора.
  • Анализатор структуры файла делает двоичную корректировку намного проще, чем просто редактирование необработанных шестнадцатеричных байтов. Открывайте, просматривайте и редактируйте файлы hex/bin с небывалой лёгкостью!

Hex Editor Neo предоставляет базовые, расширенные и даже инновационные функции. Шестнадцатеричное редактирование теперь доступно каждому начинающему пользователю!

PSPad

Любимый шестнадцатеричный редактор большинства программистов. PSPad, помимо того, что он является отличным редактором текста и кода, предлагает опцию «Открыть в HEX Editor…», которая запускает специальный режим редактирования. Когда вы находитесь в этом режиме, вы можете увидеть местоположение и шестнадцатеричные значения каждого бита файла. У вас есть два варианта корректировки – вы можете редактировать шестнадцатеричные значения по местоположению, или справа у вас есть буквенно-цифровое представление этого значения, которое вы также можете редактировать.

PSPadPSPad

XVI32

XVI32 также очень способный шестнадцатеричный редактор. Как и в PSPad, вы можете редактировать шестнадцатеричные значения напрямую или через отображение символов. В нём также есть несколько расширенных инструментов редактирования шестнадцатеричных кодов, таких как калькулятор адресов для проверки смещений и других специфичных для шестнадцатеричных данных параметров, которые могут помочь вам обойти шестнадцатеричный документ. Если вы, конечно, знаете, что делаете.

Знание того, как работает ваш ПК, становится всё более и более важным, поскольку техника становится всё проще и проще в использовании. Если у вас остались вопросы относительно редактирования шестнадцатеричных файлов, оставьте комментарий под этой статьёй.

Как открыть файл HEX? Расширение файла .HEX

Что такое файл HEX?

Файлы с расширением HEX являются исходными файлами, используемыми для сохранения различных данных, хранящихся в шестнадцатеричной системе. Они могут включать настройки, конфигурации или другую информацию.

Файлы HEX могут встречаться в текстовом или двоичном виде. Текстовые файлы HEX можно легко открыть с помощью стандартной программы редактирования текста, но для отображения содержимого двоичных файлов требуется специальный шестнадцатеричный редактор. HEX-файл является результатом преобразования исходного кода в машинный код.

Где используются HEX файлы?

Данные, содержащиеся в файлах HEX, используются компиляторами и ассемблерами в процессе написания кода, управляющего микроэлементами, такими как встроенные системы, память EEPROM или флэш-память. Микроэлементы устанавливаются во многих обычно используемых устройствах, как менее, так и более продвинутых, например: пульты дистанционного управления или системы, управляющие двигателем автомобиля.

Структура данных в файлах HEX

Шестнадцатеричные данные в HEX-файле хранятся в строках текста, и каждый из них состоит из шести элементов:

  1. Стартовый тег - двоеточие;
  2. Количество приманок - две цифры в шестнадцатеричной системе, которые определяют длину записи данных;
  3. Адрес - четыре цифры в шестнадцатеричной системе, которые позволяют адресовать до 64 КБ памяти на один сегмент;
  4. Тип записи - две цифры в шестнадцатеричной системе, от 00 до 05;
  5. Данные - конфигурация данных, которая хранит приманку в шестнадцатеричной текстовой форме;
  6. Контрольная сумма - две цифры в шестнадцатеричной системе, которые составляют контрольную сумму записи без двоеточия.
Программы, которые поддерживают HEX расширение файла

В следующем списке перечислены программы, совместимые с файлами HEX, которые разделены на категории 3 в зависимости от операционной системы, в которой они доступны. Файлы с суффиксом HEX могут быть скопированы на любое мобильное устройство или системную платформу, но может быть невозможно открыть их должным образом в целевой системе.

Updated: 12/15/2019

Как открыть файл HEX?

Отсутствие возможности открывать файлы с расширением HEX может иметь различное происхождение. Что важно, все распространенные проблемы, связанные с файлами с расширением HEX, могут решать сами пользователи. Процесс быстрый и не требует участия ИТ-специалиста. Мы подготовили список, который поможет вам решить ваши проблемы с файлами HEX.

Шаг 1. Скачайте и установите FlexHex

Install software to open HEX file Проблемы с открытием и работой с файлами HEX, скорее всего, связаны с отсутствием надлежащего программного обеспечения, совместимого с файлами HEX на вашем компьютере. Этот легкий. Выберите FlexHex или одну из рекомендованных программ (например, Hex Editor, Windows Notepad, NotePad++ text editor) и загрузите ее из соответствующего источника и установите в своей системе. Полный список программ, сгруппированных по операционным системам, можно найти выше. Если вы хотите загрузить установщик FlexHex наиболее безопасным способом, мы рекомендуем вам посетить сайт и загрузить его из официальных репозиториев.

Шаг 2. Убедитесь, что у вас установлена последняя версия FlexHex

Update software that support file extension HEXВы по-прежнему не можете получить доступ к файлам HEX, хотя FlexHex установлен в вашей системе? Убедитесь, что программное обеспечение обновлено. Разработчики программного обеспечения могут реализовать поддержку более современных форматов файлов в обновленных версиях своих продуктов. Если у вас установлена более старая версия FlexHex, она может не поддерживать формат HEX. Последняя версия FlexHex должна поддерживать все форматы файлов, которые совместимы со старыми версиями программного обеспечения.

Шаг 3. Настройте приложение по умолчанию для открытия HEX файлов на FlexHex

После установки FlexHex (самой последней версии) убедитесь, что он установлен в качестве приложения по умолчанию для открытия HEX файлов. Следующий шаг не должен создавать проблем. Процедура проста и в значительной степени не зависит от системы

Associate software with HEX file on Windows

Изменить приложение по умолчанию в Windows

  • Щелкните правой кнопкой мыши на файле HEX и выберите «Открыть с помощью опцией».
  • Далее выберите опцию Выбрать другое приложение а затем с помощью Еще приложения откройте список доступных приложений.
  • Наконец, выберите Найти другое приложение на этом... , укажите папку, в которой установлен FlexHex, установите флажок Всегда использовать это приложение для открытия HEX файлы свой выбор, нажав кнопку ОК
Associate software with HEX file on Mac

Изменить приложение по умолчанию в Mac OS

  • Щелкните правой кнопкой мыши на файле HEX и выберите Информация.
  • Откройте раздел Открыть с помощью, щелкнув его название
  • Выберите подходящее программное обеспечение и сохраните настройки, нажав Изменить все
  • Наконец, это изменение будет применено ко всем файлам с расширением HEX должно появиться сообщение. Нажмите кнопку Вперед, чтобы подтвердить свой выбор.
Шаг 4. Убедитесь, что HEX не неисправен

Вы внимательно следили за шагами, перечисленными в пунктах 1-3, но проблема все еще присутствует? Вы должны проверить, является ли файл правильным HEX файлом. Проблемы с открытием файла могут возникнуть по разным причинам.

Check HEX file for viruses
1. Проверьте HEX файл на наличие вирусов или вредоносных программ.

Если HEX действительно заражен, возможно, вредоносное ПО блокирует его открытие. Немедленно просканируйте файл с помощью антивирусного инструмента или просмотрите всю систему, чтобы убедиться, что вся система безопасна. Если сканер обнаружил, что файл HEX небезопасен, действуйте в соответствии с инструкциями антивирусной программы для нейтрализации угрозы.

2. Убедитесь, что структура файла HEX не повреждена

Вы получили HEX файл от другого человека? Попросите его / ее отправить еще раз. Возможно, что файл не был должным образом скопирован в хранилище данных и является неполным и поэтому не может быть открыт. При загрузке файла с расширением HEX из Интернета может произойти ошибка, приводящая к неполному файлу. Попробуйте загрузить файл еще раз.

3. Проверьте, есть ли у пользователя, вошедшего в систему, права администратора.

Некоторые файлы требуют повышенных прав доступа для их открытия. Переключитесь на учетную запись с необходимыми привилегиями и попробуйте снова открыть файл Hexadecimal Source Format.

4. Убедитесь, что в системе достаточно ресурсов для запуска FlexHex

Если в системе недостаточно ресурсов для открытия файлов HEX, попробуйте закрыть все запущенные в данный момент приложения и повторите попытку.

5. Проверьте, есть ли у вас последние обновления операционной системы и драйверов

Последние версии программ и драйверов могут помочь вам решить проблемы с файлами Hexadecimal Source Format и обеспечить безопасность вашего устройства и операционной системы. Возможно, файлы HEX работают правильно с обновленным программным обеспечением, которое устраняет некоторые системные ошибки.

СпецПромДизайн

Формат Intel-HEX

Шестнадцатиричный объектный формат файлов Intel-HEX (далее просто HEX-формат) – это способ представить двоичные данные в виде кодов ASCII. Поскольку файл состоит из символов ASCII, а не двоичных кодов, появляется возможность хранить данные на бумаге, перфоленте или перфокартах, выводить их на терминал, принтер и т.д. Восьмибитовый HEX-формат файлов предусматривает размещение данных и кода в 16-разрядном линейном адресном пространстве для 8-разрядных процессоров Intel. 16-разрядный HEX-формат файлов дополнительно позволяет использовать 20-разрядное сегментное пространство адресов 16-разрядных процессоров Intel. И, наконец, 32-разрядный формат позволяет оперировать линейным 32-разрядным адресным пространством 32-разрядных процессоров.

Шестнадцатиричное представление двоичных данных в виде ASCII требует использование двух символов для записи одного байта, при этом первый символ всегда соответствует старшей тетраде битов одного байта. Такой подход увеличивает количество символов в двое по сравнению с количеством двоичных данных.

Формат файла организован в виде набора записей, содержащих сведения о типе, количестве данных, адресе их загрузки в память и дополнительные сведения. В настоящее время определены шесть различных типов записей, однако не все их комбинации определены для разных форматов данных.

Записи могут быть следующих типов:

  • Данные (определена для всех форматов данных)
  • Маркер конца файла (определена для всех форматов файла)
  • Сегментный адрес (определена для 16- и 32-битных форматов)
  • Сегментный адрес старта (определена для 16- и 32-битных форматов)
  • Линейный адрес (определена только для 32-битного формата)
  • Линейный адрес старта (определена только для 32-битнного формата)

Маркер записи Кол-во данных
RECLEN
Смещение
OFFSET
Тип записи
TYPEREC
Данные
DATA
Контрольная сумма
CHECKSUM
: 1 байт 2 байта 1 байт RECLEN байт 1 байт

Каждая запись представляет собой ASCII-строку файла. В одной строке – одна запись.

Каждая запись начинается с МАРКЕРА ЗАПИСИ, который обозначается ASCII-символом двоеточие (":").

Каждая запись содержит поле RECLEN, определяющее количество байтов данных или информационных байтов, назначение которых определяется типом записи. Максимальное значение этого поля – 255 (0xFF).

Каждая запись содержит поле OFFSET, определяющее 16-битное смещение в адресном пространстве байтов данных. Это поле используется только в записях данных, а в остальных случаях оно должно быть равно нулю.

Каждая запись содержит поле TYPEREC, определяющее тип текущей записи (из ранее упомянутых шести). Это поле используется для интерпретации всех остальных полей записи. Типы записей кодируются следующими значениями поля TYPEREC (в ASCII):

  • "00" – данные
  • "01" – маркер конца файла
  • "02" – адрес сегмента
  • "03" – сегментный адрес старта
  • "04" – линейный адрес
  • "05" – линейный адрес старта

Каждая запись содержит поле DATA переменной длины, которое содержит ноль или более байтов, закодированных символами ASCII. Назначение этих байтов определяется типом записи.

Наконец, каждая запись завершается полем CHECKSUM, гарантирующим целостность всех данных записи. Значение этого поля равно дополнению по модулю 256 до нуля суммы по модулю 256 всех байтов, начиная с поля RECLEN и заканчивая последним байтом поля DATA. При считывании записи следует суммировать по модулю 256 все байты записи, включая поле CHECKSUM. Если в конце концов сумма равна нулю, это означает, что данные считаны без искажений, в противном случае данные недостоверны.

Формат записи следующий:

Маркер записи Кол-во данных
RECLEN
Смещение
OFFSET
Тип записи
TYPEREC
Данные
ULBA
Контрольная сумма
CHECKSUM
: 02 0000 04 2 байта 1 байт

Эта запись служит для задания значения битов 16-31 в линейном базовом адресе (LBA, Linear Base Address), причем биты 0-15 LBA равны нулю. Биты 16-31 LBA определяются верхним линейным базовым адресом (ULBA, Upper Linear Base Address). Абсолютное значение адреса байта данных в памяти определяется как сумма значения LBA и значения поля OFFSET в последующих записях данных, плюс индекс байта данных внутри поля DATA. Эта сумма выполняется без учёта переполнения результата (то есть не может превышать 0xFFFFFFFF, 4 Гб).

Фактический линейный адрес байта данных вычисляется в итоге по формуле:

ByteAddr = (LBA + DRLO + DRI) mod 4G,

где: DRLO – значение поля OFFSET записи данных;
DRI – индекс байта в поле DATA записи данных;
mod 4G – операция "сложение по модулю 232".

Когда запись "Линейный адрес" встречается в файле, вычисляется значение LBA, которое действует для всех последующих записей данных, пока не встретится снова запись "Линейный адрес". По умолчанию LBA = 0.

Формат записи следующий:

Маркер записи Кол-во данных
RECLEN
Смещение
OFFSET
Тип записи
TYPEREC
Данные
USBA
Контрольная сумма
CHECKSUM
: 02 0000 04 2 байта 1 байт

Эта запись служит для задания значения битов 4-19 сегментного базового адреса (SBA, Segment Base Address), где биты 0-3 SBA равны нулю. Биты 4-19 SBA определяются верхним базовым адресом сегмента (USBA, Upper Segment Base Address). Абсолютный адрес байта в записи данных вычисляется путем прибавления к SBA значения поля OFFSET записи данных и индекса байта относительно начала поля DATA. Прибавление смещения (OFFSET) осуществляется по модулю 65536 (64 К), без учёта переполнения.

Таким образом, адрес конкретного байта вычисляется по формуле:

ByteAddr = SBA + (DRLO + DRI) mod 64K,

где: DRLO – значение поля OFFSET записи данных;
DRI – индекс байта в поле DATA записи данных;
mod 64K – операция "сложение по модулю 65536".

Когда запись "Адрес сегмента" встречается в файле, вычисляется значение SBA, которое действует для всех последующих записей данных, пока не встретится снова запись "Адрес сегмента". По умолчанию SBA = 0.

Формат записи следующий:

Маркер записи Кол-во данных
RECLEN
Смещение
OFFSET
Тип записи
TYPEREC
Данные
DATA
Контрольная сумма
CHECKSUM
: 1 байт 2 байта 00 RECLEN байтов 1 байт

Эта запись собственно и содержит данные. Метод вычисления фактического (абсолютного) адреса каждого байта данных в памяти определяется по вышеприведённым формулам и зависит от формата данных.

Формат записи следующий:

Маркер записи Кол-во данных
RECLEN
Смещение
OFFSET
Тип записи
TYPEREC
Данные
EIP
Контрольная сумма
CHECKSUM
: 04 0000 05 4 байта 1 байт

Запись "Линейный адрес старта" используется для указания адреса, с которого начинается исполнение объектного файла. Это значение заносится в регистр EIP процессора. Следует обратить внимание, что эта запись определяет только точку входа сегмента кода для защищённого режима процессоров 80386. В обычном режиме точка старта определяется записью "Сегментный адрес старта", которая определяет значения пары регистров CS:IP.

Запись "Линейный адрес старта" может находиться в любом месте файла. Если её нет, загрузчик использует адрес старта по умолчанию.

Значение регистра EIP процессора содержится в соответствующем поле записи, для него требуется всегда 4 байта.

Формат записи следующий:

Маркер записи Кол-во данных
RECLEN
Смещение
OFFSET
Тип записи
TYPEREC
Данные
CS:IP
Контрольная сумма
CHECKSUM
: 04 0000 03 4 байта 1 байт

Запись "Сегментный адрес старта" используется для указания адреса, с которого начинается исполнение объектного файла. Это значение определяет 20-битный адрес, заносимый в регистры CS:IP процессора. Следует обратить внимание, что эта запись определяет только точку входа в 20-битном адресном пространстве процессоров 8086/80186.

Запись "Сегментный адрес старта" может находиться в любом месте файла. Если её нет, загрузчик использует значение по умолчанию.

Значение регистров CS:IP процессора содержится в соответствующем поле записи, для него требуется всегда 4 байта. Значение хранится в порядке "от старшего к младшему", то есть младший байт значения регистра IP хранится в четвертом байте поля CS:IP, старший – в третьем, затем во втором хранится младший байт значения регистра CS, и в первом – старший байт регистра CS.

Формат записи следующий:

Маркер записи Кол-во данных
RECLEN
Смещение
OFFSET
Тип записи
TYPEREC
Контрольная сумма
CHECKSUM
: 00 0000 01 1 байт

Эта запись не содержит полей с изменяющимися данными, поэтому выглядит всегда совершенно одинаково: ":00000001FF". Запись обозначает конец данных в файле. Все последующие строки, если они есть в файле, игнорируются.

:10010000214601360121470136007EFE09D2190140
:100110002146017EB7C20001FF5F16002148011988
:10012000194E79234623965778239EDA3F01B2CAA7
:100130003F0156702B5E712B722B732146013421C7
:00000001FF

     Маркер записи
     Кол-во данных
     Смещение
     Тип записи
     Данные
     Контрольная сумма

Intel HEX - это... Что такое Intel HEX?

Intel HEX — формат файла, предназначенного для представления произвольных двоичных данных в текстовом виде. По историческим причинам является стандартом де-факто при прошивке разнообразных микросхем с памятью (микроконтроллеров, ПЗУ, EEPROM и т. п.). Соответственно большинство инструментов подготовки образов прошивки (компиляторы, редакторы, просмотрщики и т. п.) умеют работать с этим форматом.

Файл обычно имеет расширение HEX. Встречаются две модификации: intel-standart и intel-extended. Intel-standart поддерживает только 16 бит адрес (до 64 кБайт). Intel-extended имеет расширенный список типов записей и 32-бит адрес.

Достоинством формата (в отличие от простого двоичного) является возможность указывать только определенные области адресов (с точностью до байта). Многие микроконтроллерные архитектуры имеют несколько областей программирования с обширными пустотами в адресации между ними.

Формат записи

Объяснение первое

Файл состоит из текстовых ASCII строк. Каждая строка представляет собой одну запись. Каждая запись начинается с двоеточия (:), после которого идет набор шестнадцатеричных цифр кратных байту:

  • Начало записи (:).
  • Количество байт данных, содержащихся в этой записи. Занимает один байт (две шестнадцатеричных цифры), что соответствует 0…255 в десятичной системе.
  • Начальный адрес блока записываемых данных — 2 байта. Этот адрес определяет абсолютное местоположение данных этой записи в двоичном файле.
  • Один байт, обозначающий тип записи. Определены следующие типы записей:
    • 0 — запись содержит данные двоичного файла.
    • 1 — запись обозначает конец файла, данных не содержит. Имеет характерный вид «:00000001FF».
    • 2 — запись адреса сегмента (подробнее см.ниже).
    • 4 — запись расширенного адреса (подробнее см.ниже).
  • Байты данных, которые требуется сохранить в EPROM (их число указывается в начале записи, от 0 до 255 байт).
  • Последний байт в записи является контрольной суммой. Рассчитывается так чтобы сумма всех байтов в записи была равна 0.
  • Строка заканчивается стандартной парой CR/LF (0Dh 0Ah).

Объяснение второе

Файл формата Intel HEX может состоять из любого количества записей. Каждая запись представляет собой ASCII-строку состоящую из нескольких пар 16-ричных цифр. Строка должна начинаться с символа двоеточия и оканчиваться парой символов CR и LF. Запись состоит из пяти полей следующего формата:
:LLAAAATTDD...CC
Каждая группа букв (LL, AAAA, TT и т. д.) представляет собой отдельное поле. Каждая буква — отдельную 16-ричную цифру (4 бита). Каждое поле состоит, как минимум, из двух 16-ричных цифр (байт). Ниже представлена расшифровка полей записи:

  •  : Каждая запись в файле Intel HEX должна начинаться с двоеточия.
  • LL Поле длины — показывает количество байт данных (DD) в записи.
  • AAAA Поле адреса — представляет начальный адрес записи.
  • TT Поле типа. Оно может принимать следующие значения:
    • 00 запись содержит данные двоичного файла.
    • 01 запись является концом файла.
    • 02 запись адреса сегмента (подробнее см. ниже).
    • 03 Start Segment Address Record.
    • 04 запись расширенного адреса (подробнее см. ниже).
    • 05 Start Linear Address Record.
  • DD Поле данных. Запись может содержать несколько байт данных. Количество байт данных должно соответствовать полю LL.
  • CC Поле контрольной суммы. Поле контрольной суммы вычисляется путем сложения значений всех байт (пар 16-ричных цифр) записи по модулю 256 с последующим переводом в дополнительный формат (отнять получившееся значение от 0). Таким образом, если просуммировать все пары шестнадцатеричных чисел, включая LL, AA, TT, DD, CC, получится 0.

Запись адреса сегмента

Файл формата Intel HEХ может содержать записи для процессоров i8086, которые определяют адрес сегмента (иначе говоря — номер параграфа, один параграф — это 16 байт). Если используется директива h267, то этот тип записи заменяет запись расширенного линейного адреса. Номер параграфа используется как смещение адреса для всех записей данных, следующих за этой записью. Смещение представляет собой сдвиг адреса на четыре бита влево. Например, смещение равное 0x1234 даст реальный адрес 0x12340. Пример записи:
:020000021000EC где:

  • 02 Количество байт данных
  • 0000 В этом типе записи всегда равно 0000
  • 02 Тип записи 02 (запись адреса сегмента).
  • 1000 Номер параграфа (реальный адрес будет равен 0x10000).
  • EC Контрольная сумма

Запись расширенного адреса

Когда используется директива h267, файл формата Intel HEX возможно будет содержать записи расширенного линейного адреса. Этот тип записи определяет значения двух старших байт абсолютного адреса (биты 16-31). Эти два старших байта адреса будут применяться как смещение адреса для всех записей данных, следующих за этой записью. Пример записи:
: 0200000400FFFB
где:

  • 02 Количество байт данных
  • 0000 Всегда равно 0
  • 04 Тип записи 04 (запись расширенного линейного адреса)
  • 00FF Старшее слово смещения адреса (0x00FF0000)
  • FB Контрольная сумма

Запись конца файла

Файлы формата Intel HEX должны иметь запись Конца Файла (EOF). Пример записи:
:00000001FF где:

  • 00 Количество байт записи
  • 0000 Поле игнорируется. Не имеет значения, что там записано, но обычно всегда равно 0
  • 01 Тип записи 01 (Конец Файла)
  • FF Контрольная сумма, вычисленная как 01h + NOT(00h + 00h + 00h + 01h).

Примеры

Пример 1

:10010000214601360121470136007EFE09D2190140
:100110002146017EB7C20001FF5F16002148011988
:10012000194E79234623965778239EDA3F01B2CAA7
:100130003F0156702B5E712B722B732146013421C7
:00000001FF

     Начало записи      Счётчик байт      Адрес      Тип записи      Данные      Контрольная сумма

Пример 2

Пример одной записи данных:
:10246200464C5549442050524F46494C4500464C33 где

  • 10 Количество байт данных (16 байт)
  • 2462 Адрес памяти, куда будет помещена запись.
  • 00 Тип записи — данные.
  • 464C...464C Данные
  • 33 Контрольная сумма записи

Пример 3

: 020000021000EC
: 10C20000E0A5E6F6FDFFE0AEE00FE6FCFDFFE6FD93
: 10C21000FFFFF6F50EFE4B66F2FA0CFEF2F40EFE90
: 10C22000F04EF05FF06CF07DCA0050C2F086F097DF
: 10C23000F04AF054BCF5204830592D02E018BB03F9
: 020000020000FC
: 04000000FA00000200
: 00000001FF

См. также

SREC — формат файла используемый ф.Motorola

Ссылки

Intel Hex - это... Что такое Intel Hex?

LLAAAATTDD...CC

Каждая группа букв (LL, AAAA, TT и т. д.) представляет собой отдельное поле. Каждая буква — отдельную 16-ричную цифру (4 бита). Каждое поле состоит, как минимум, из двух 16-ричных цифр (байт). Ниже представлена расшифровка полей записи:

Каждая запись в файле Intel HEX должна начинаться с двоеточия.

LL Поле длины – показывает количество байт данных (DD) в записи. AAAA Поле адреса – представляет начальный адрес записи. TT Поле типа. Оно может принимать следующие значения: 00 запись содержит данные 01 запись представляет код конца файла 02 запись представляет адрес сегмента для i8086 04 запись расширения линейного адреса DD Поде данных. Запись может содержать несколько байт данных. Количество байт данных должно соответствовать полю LL. CC Поле контрольной суммы. Поле контрольной суммы вычисляется путем сложения значений всех байт (пар 16-ричных цифр) записи по модулю 256 с последующим переводом в дополнительный формат.

Запись данных

Пример одной записи данных:

10246200464C5549442050524F46494C4500464C33

где 10 Количество байт данных (16 байт) 2462 Адрес памяти, куда будет помещена запись. 00 Тип записи — данные. 464C...464C Данные 33 Контрольная сумма записи

Запись адреса сегмента

Файл формата Intel HEХможет содержать записи для процессоров i8086, которые определяют адрес сегмента (иначе говоря — номер параграфа, один параграф — это 16 байт). Если используется директива h267, то этот тип записи заменяет запись расширенного линейного адреса. Номер параграфа используется как смещение адреса для всех записей данных, следующих за этой записью. Смещение представляет собой сдвиг адреса на четыре бита влево. Например, смещение равное 0x1234 даст реальный адрес 0x12340. Пример записи:

020000021000EC

где: 02 Количество байт данных 0000 В этом типе записи всегда равно 0000 02 Тип записи 02 (запись расширенного линейного адреса). 1000 Номер параграфа (реальный адрес будет равен 0x10000). EC Контрольная сумма

Запись расширенного адреса

Когда используется директива h267, файл формата Intel HEX возможно будет содержать записи расширенного линейного адреса. Этот тип записи определяет значения двух старших байт абсолютного адреса (биты 16-31). Эти два старших байта адреса будут применяться как смещение адреса для всех записей данных, следующих за этой записью. Пример записи:

0200000400FFFB

где: 02 Количество байт данных 0000 Всегда равно 0 04 Тип записи 04 (запись расширенного линейного адреса) 00FF Старшее слово смещения адреса (0x00FF0000) FB Контрольная сумма Запись Конец Файла (EOF) Файлы формата Intel HEX должны иметь запись Конца Файла (EOF). Пример записи:

00000001FF

где: 00 Количество байт записи 0000 Поле игнорируется. Не имеет значения, что там записано, но обычно всегда равно 0 01 Тип записи 01 (Конец Файла) FF Контрольная сумма, вычисленная как 01h + NOT(00h + 00h + 00h + 01h). Пример файла формата Intel HEX

020000021000EC
10C20000E0A5E6F6FDFFE0AEE00FE6FCFDFFE6FD93
10C21000FFFFF6F50EFE4B66F2FA0CFEF2F40EFE90
10C22000F04EF05FF06CF07DCA0050C2F086F097DF
10C23000F04AF054BCF5204830592D02E018BB03F9
020000020000FC
04000000FA00000200
00000001FF

На основе описаний Keil Software, Inc. and and Keil Elektronik GmbH (С) Жевак Александр, 2007

Смотрите также

SREC - формат файла используемый ф.Motorola

Файл HEX - Как открыть файл .hex? [Шаг-за-шагом]

В таблице ниже предоставляет полезную информацию о расширение файла .hex. Он отвечает на вопросы такие, как:

  • Что такое файл .hex?
  • Какое программное обеспечение мне нужно открыть файл .hex?
  • Как файл .hex быть открыты, отредактированы или напечатано?
  • Как конвертировать .hex файлов в другой формат?

Мы надеемся, что вы найдете на этой странице полезный и ценный ресурс!

2 расширений и 0 псевдонимы, найденных в базе данных

✅ BinHex Encoded Data

Описание (на английском языке):
HEX file is a BinHex Encoded data. BinHex is a binary to text translator that can directly encode any Macintosh document. It is similar to Uuencode.

MIME-тип: application/mac-binhex

Магическое число: -

Магическое число: -

Образец: -

HEX псевдонимы:

-

HEX cсылки по теме:

-

HEX связанные расширения:

Macintosh BinHex Encoded File

Plain Text Document

Uuencoded Data

Xxencoded Data

TCR E-book

BinHex 2.0 Encoded Data

Base64 Encoded Data

Boo Encoded Data

Mobipocket Reader Data

Mobipocket Reader E-Book


✅ Intel HEX Format Data

Описание (на английском языке):
HEX file is an Intel HEX Format Data. The Intel HEX (ihex) generally known as hex file, is a format used to store machine language code in hexadecimal form. It is widely used format to store programs to be transferred to microcontrollers, ROM and EEPROM. The compilers convert the programs written in assembly, C etc into corresponding hex files, which are dumped into the controllers using burners/programmers.

Описание формата HEX пока не имеется

MIME-тип: application/octet-stream

Магическое число: -

Магическое число: -

Образец: -

HEX псевдонимы:

ihex, ihx

HEX cсылки по теме:

-

HEX связанные расширения:

Executable and Linkable Format File

AVRDUDE Eprom Data


Другие типы файлов могут также использовать расширение файла .hex.

🚫 Расширение файла .hex часто дается неправильно!

По данным Поиск на нашем сайте эти опечатки были наиболее распространенными в прошлом году:

bex, ehx, ex, gex, hdx, he, hea, hec, hed, hes, hfx, hrx, hsx, hwx, hx

Это возможно, что расширение имени файла указано неправильно?

Мы нашли следующие аналогичные расширений файлов в нашей базе данных:

Hudson Entertainment Sound

Opera 15 Navigator Extension

Health & Safety Xpert Project

GameMaker Studio Extension

🔴 Не удается открыть файл .hex?

Если дважды щелкнуть файл, чтобы открыть его, Windows проверяет расширение имени файла. Если Windows распознает расширение имени файла, файл открывается в программе, которая связана с этим расширением имени файла. Когда Windows не распознает расширение имени файла, появляется следующее сообщение:

Windows не удается открыть этот файл:

пример.hex

Чтобы открыть этот файл, Windows необходимо знать, какую программу вы хотите использовать для его открытия...

Если вы не знаете как настроить сопоставления файлов .hex, проверьте FAQ.

🔴 Можно ли изменить расширение файлов?

Изменение имени файла расширение файла не является хорошей идеей. Когда вы меняете расширение файла, вы изменить способ программы на вашем компьютере чтения файла. Проблема заключается в том, что изменение расширения файла не изменяет формат файла.

Если у вас есть полезная информация о расширение файла .hex, напишите нам!

🔴 Оцените нашу страницу HEX

Пожалуйста, помогите нам, оценив нашу страницу HEX в 5-звездочной рейтинговой системе ниже. (1 звезда плохая, 5 звезд отличная)

Что такое HEX и ASCII-дескрипторы или как определить формат файла без расширения

Как известно любая информация будь то текст, изображение или видео, по сути, является ничем иным как набором двоичного кода — последовательности нулей и единиц. Именно в таком виде на жёстком диске хранятся данные. Понятие двоичный код едва ли не абстрактное, это не запись в привычном понимании этого слова, двоичный или машинный код это скорее состояние микроскопических ячеек на магнитной поверхности жесткого диска. Положительный заряд такой ячейки имеет знак плюс или 1, отрицательный — минус или 0.

Логически объединенные последовательности нулей и единиц как раз и составляют то, что мы называем файлами. Но ведь мы знаем и то, что типов файлов очень много. Есть текстовые файлы, мультимедийные, архивные, системные, исполняемые и так далее. Каким же образом операционная система определяет как читать или обрабатывать тот или иной файл? Прикладные программы распознают тип файла по его расширению — набору символов следующих после имени файла и отделенных от него точкой.

Но что будет, если расширение удалить? Всё правильно, операционная система не сможет открыть такой файл, так как не будет знать какую программу для этого использовать. Однако ни логическая структура, ни содержимое переименованного файла от этого не изменится. Вы и сами в этом можете убедиться удалив расширение какого-нибудь файла, а затем попробовав его открыть соответствующей программой. Уверены, с этим у вас проблем не возникнет.

Следовательно, вовсе не расширение определяет тип файла. Тогда что же? Тип файла определяет его формат или иначе спецификация структуры данных. Расширение и формат очень часто путают, хотя на деле это совершенно разные понятия. Тут возникает вполне закономерный вопрос, а как определить формат файла, если его расширение по какой-то причине оказалось утрачено? Оказывается очень просто.

Грубо говоря, все файлы состоят из двух частей. Первая часть это заголовок, содержащий различную метаинформацию включая те данные, которые позволяют прикладным программам этот самый файл идентифицировать. Вторая часть это «тело» файла. Отвечающая за определение типа файла часть заголовка файла именуется дескриптором или описанием. Наиболее распространёнными типами дескрипторов являются HEX и ASCII. Первый тип заголовков можно просмотреть только с помощью специальных утилит — шестнадцатеричных редакторов.

Для просмотра дескрипторов второго типа можно обойтись обычным текстовым редактором, тем же Блокнотом или Notepad++. Однако следует учитывать, что далеко не все последовательности байтов можно перевести в ASCII-код, поэтому для определения формата всё-таки лучше использовать HEX-редакторы. Открытый в HEX-редакторе файл отображается в виде матрицы из последовательности байтов. Каждая ячейка соответствует одному байту. Данные дескриптора содержатся как раз в первых трёх ячейках (реже двух или четырех), расположенных по горизонтали. Представляют они из себя шесть символов в шестнадцатеричном счислении, например 49 44 33 или ff d8 e0.

Открытый в HEX-редакторе файл

Естественно они нуждаются в расшифровке. А расшифровать их можно на специальных сайтах с описаниями форматов. Одним из лучших сайтов, где можно определить формат по HEX-дескриптору является open-file.ru. Есть и другие подобные ресурсы, но они не настолько удобны. На open-file.ru же имеется специальная поисковая форма, куда можно вставить HEX или ASCII дескриптор и пробить его по базе данных. Система быстро найдёт соответствующий формат и предоставит вам его полное описание.

Open-file.ru поиск по HEX

С HEX-редакторами всё более или менее понятно, но как мы сказали для определения ASCII-заголовков также можно использовать редакторы текстовые. Принцип здесь тот же самый, открываем файл Блокнотом или Notepad++, копируем первые символы и вставляем их в поисковое поле того же open-file или другого сайта с поддержкой поиска по заголовкам.

Казалось бы всё очень просто, но есть в деле идентификации форматов и свои сложности. Иногда ASCII-заголовки совпадают с расширением файла (RAR и PDF), но может быть и такое, что заголовок оказывается принадлежащим сразу нескольким форматам. Это можно видеть на примере офисного формата DOCX (PK и 50 4b 03 04). В таких случаях точно определить формат проблематично.

ASCII

Но круг поиска можно сузить. Для этого рекомендуется просматривать первую, вторую и третью строку заголовка в текстовом редакторе, так как содержащиеся в них элементы также могут косвенно указывать на принадлежность к тому или иному типу файлов.

Файл является размеченным текстовым документом

Так, строка [Content_Types].xml в DOCX явно указывает на то, что исследуемый файл является размеченным текстовым документом.

ОБЩАЯ ИНФОРМАЦИЯ: ФОРМАТ ФАЙЛА INTEX HEX

Главная / Техническая поддержка

Информация в этой статье относится к:

  • MDK-ARM Все версии
  • C166 Все версии
  • C251 Все версии
  • C51 Все версии

ВОПРОС

Что такое формат файла Intel HEX?

ОТВЕТ

Файл Intel HEX представляет собой текстовый файл ASCII со строками текста, которые следуйте формату файла Intel HEX.Каждая строка в файле Intel HEX содержит одну запись HEX. Эти записи состоят из шестнадцатеричного числа, которые представляют код машинного языка и / или постоянные данные. Файлы Intel HEX часто используются для передачи программы и данных, которые будет храниться в ПЗУ или СППЗУ. Большинство программистов EPROM или эмуляторы могут использовать файлы Intel HEX.

Формат записи

Файл Intel HEX состоит из любого количества записей HEX. каждый запись состоит из пяти полей, которые расположены в следующем формат:

: Llaaaatt [дд...] куб.см
 

Каждая группа букв соответствует отдельному полю, и каждый буква представляет одну шестнадцатеричную цифру. Каждое поле состоит как минимум двух шестнадцатеричных цифр, составляющих байт, как описано ниже:

  • : - это двоеточие, которое начинает каждую запись Intel HEX.
  • ll - это поле длины записи, которое представляет количество байтов данных ( от ) в записи.
  • AAAA - это поле адреса, которое представляет начальный адрес для последующих данных в записи.
  • тт это поле, которое представляет запись HEX тип, который может быть одним из следующих:
    00 - запись данных
    01 - запись конца файла
    02 - адресная запись расширенного сегмента
    04 - расширенная запись линейного адреса
    05 - начать запись линейного адреса (только MDK-ARM)
  • дд - это поле данных, которое представляет один байт данные.Запись может иметь несколько байтов данных. Количество данных байты в записи должны соответствовать числу, указанному или поле.
  • cc - это поле контрольной суммы, которое представляет контрольная сумма записи. Контрольная сумма рассчитывается суммированием значения всех пар шестнадцатеричных цифр в записи по модулю 256 и взяв два дополнения.
записей данных

Файл Intel HEX состоит из любого количества записей данных, которые заканчиваются возвратом каретки и переводом строки.Записи данных выглядят следующим образом:

: 10246200464C5549442050524F46494C4500464C33
 

Эта запись расшифрована следующим образом:

: 10246200464C5549442050524F46494C4500464C33
||||||||||| CC-> Контрольная сумма
||||||||| dd-> Данные
||||||| TT-> Тип записи
||| AAAA-> Адрес
| LL-> Длина записи
: -> Colon
 

где:

  • 10 - количество байтов данных в записи.
  • 2462 - адрес, по которому должны быть расположены данные объем памяти.
  • 00 - это тип записи 00 (запись данных).
  • 464C ... 464C это данные.
  • 33 - контрольная сумма записи.
Расширенные записи линейных адресов (HEX386)

Расширенные записи линейного адреса также известны как 32-разрядный адрес записи и записи HEX386.Эти записи содержат верхние 16 бит (биты 16-31) адреса данных. Расширенная линейная адресная запись всегда имеет два байта данных и выглядит следующим образом:

: 02000004FFFFFC
 

где:

  • 02 - количество байтов данных в записи.
  • 0000 - это поле адреса. Для расширенного линейного запись адреса, это поле всегда 0000.
  • 04 - тип записи 04 (расширенный линейный адрес запись).
  • FFFF - это старшие 16 бит адреса.
  • FC является контрольной суммой записи и рассчитывается как
    01h + НЕ (02h + 00h + 00h + 04h + FFh + FFh).

Когда расширенная запись линейного адреса читается, расширенный линейный адрес, сохраненный в поле данных, сохраняется и применяется к последующие записи читаются из файла Intel HEX. Линейный адрес остается в силе, пока не будет изменен другим расширенным адресом запись.

Адрес абсолютной памяти записи данных получается путем добавления поле адреса в записи для сдвинутых данных адреса из расширенная запись линейного адреса. Следующий пример иллюстрирует этот процесс ..

Адрес из поля адреса записи данных 2462
Расширенное поле данных записи линейного адреса FFFF
                                              --------
Абсолютный адрес памяти FFFF2462
 
адресных записей расширенного сегмента (HEX86)

Расширенные записи адресов сегмента, также известные как HEX86 Записи содержат биты 4-19 сегмента адреса данных.Расширенный запись адреса сегмента всегда имеет два байта данных и выглядит как следует:

: 020000021200EA
 

где:

  • 02 - количество байтов данных в записи.
  • 0000 - это поле адреса. Для расширенного сегмента запись адреса, это поле всегда 0000.
  • 02 - тип записи 02 (адрес расширенного сегмента запись).
  • 1200 является сегментом адреса.
  • EA является контрольной суммой записи и рассчитывается как
    01h + НЕ (02h + 00h + 00h + 02h + 12h + 00h).

Когда запись адреса расширенного сегмента считывается, расширенный адрес сегмента, сохраненный в поле данных, сохраняется и применяется к последующие записи читаются из файла Intel HEX. Адрес сегмента остается в силе, пока не будет изменен другим расширенным адресом запись.

Адрес абсолютной памяти записи данных получается путем добавления поле адреса в записи для данных со смещенным адресом из адресная запись расширенного сегмента. Следующий пример иллюстрирует этот процесс.

Адрес из поля адреса записи данных 2462
Поле 1200 данных записи адреса расширенного сегмента
                                             --------
Абсолютный адрес памяти 00014462
 
Начать запись линейных адресов (только MDK-ARM)

Начальный линейный адрес записи указывает начальный адрес применение.Эти записи содержат полный линейный 32-битный адрес. Начальная запись линейного адреса всегда имеет четыре байта данных и выглядит следующим образом:

: 04000005000000CD2A
 

где:

  • 04 - количество байтов данных в записи.
  • 0000 - это поле адреса. Для начального линейного адреса запись, это поле всегда 0000.
  • 05 - тип записи 05 (начальный линейный адрес запись).
  • 000000CD - 4-байтовый линейный начальный адрес применение.
  • 2A является контрольной суммой записи и рассчитывается как
    01h + НЕ (04h + 00h + 00h + 05h + 00h + 00h + 00h + CDh).

Начальный линейный адрес указывает адрес __main (pre-main) функция, но не адрес кода запуска, который обычно вызывает __main после вызова SystemInit ().Странное линейное начало address указывает, что __main скомпилирован для инструкции Thumb устанавливать.

Начальная запись линейного адреса может появиться в любом месте шестнадцатеричного файла. В большинстве случаев эту запись можно игнорировать, поскольку она не содержит информация, которая необходима для программирования флэш-памяти.

записей об окончании файла (EOF)

Файл Intel HEX должен заканчиваться записью конца файла (EOF). это запись должна иметь значение 01 в поле типа записи.Запись EOF всегда выглядит следующим образом:

: 00000001FF
 

где:

  • 00 - количество байтов данных в записи.
  • 0000 - адрес, по которому должны быть расположены данные объем памяти. Адрес в записях конца файла не имеет смысла и игнорируются. Адрес 0000h является типичным.
  • 01 - это тип записи 01 (запись в конце файла).
  • FF является контрольной суммой записи и рассчитывается как
    01h + НЕ (00h + 00h + 00h + 01h).
Пример файла Intel HEX

Ниже приведен пример полного файла Intel HEX:

: 10001300AC12AD13AE10AF1112002F8E0E8F0F2244
: 10000300E50B250DF509E50A350CF5081200132259
: 03000000020023D8
: 0C002300787FE4F6D8FD7581130200031D
: 10002F00EFF88DF0A4FFEDC5F0CEA42EFEEC88F016
: 04003F00A42EFE22CB
: 00000001FF
 

СМ. ТАКЖЕ

СМОТРИТЕ ТАКЖЕ ДЛЯ 8051

ФОРУМ РЕЗЬБЫ

Следующие темы форума могут предоставить информацию, связанную с этой темой.

Последнее отзыв: понедельник, 7 мая 2018 г.


,

Intel HEX File Format - Справка разработчика

Переключить навигацию

  • Средства разработки
    • Какие инструменты мне нужны?
    • Программные средства
      • Начните здесь
      • MPLAB® X IDE
        • Начните здесь
        • Установка
        • Введение в среду разработки MPLAB X
        • Миграция в MPLAB X IDE
          • Миграция из MPLAB IDE v8
          • Миграция от Атмел Студио
        • Конфигурация
        • плагинов
        • Интерфейс пользователя
        • проектов
        • Файлов
        • редактор
          • редактор
          • Интерфейс и Ярлыки
          • Основные задачи
          • Внешний вид
          • Динамическая обратная связь
          • Навигация
          • Поиск, замена и рефакторинг
          • Инструменты для повышения производительности
            • Инструменты для повышения производительности
            • Автоматическое форматирование кода
            • Список задач
            • Сравнение файлов (diff)
            • Создать документацию
        • Управление окнами
        • сочетаний клавиш
        • Отладка
        • Контроль версий
        • Автоматизация
          • Язык управления стимулами (SCL)
          • Отладчик командной строки
          • (MDB)
          • IDE Сценарии с Groovy
        • Устранение неисправностей
        • Работа вне MPLAB X IDE
        • Другие ресурсы
      • MPLAB Xpress
      • MPLAB IPE
      • C Программирование
      • Компиляторы
      • MPLAB® XC
        • Начните здесь
        • Компилятор
        • MPLAB® XC8
        • Компилятор
        • MPLAB XC16
        • Компилятор
        • MPLAB XC32
        • Компилятор
        • MPLAB XC32 ++
        • MPLAB код покрытия
      • Компилятор
      • IAR C / C ++
      • MPLAB Code Configurator (MCC)
      • MPLAB Harmony v2
      • MPLAB Harmony v3
      • Atmel® Studio IDE
      • Atmel START (ASF4)
      • Advanced Software Framework v3 (ASF3)
        • Начните здесь
        • ASF3 Tutorials
          • ASF Audio Sine Tone Tutorial
          • Интерфейсный ЖК-дисплей с учебным пособием по SAM L22 MCU
      • блоков устройств MPLAB® для Simulink®
      • Утилиты
      • FPGA Средства разработки
      • MPLAB® Mindi ™ Аналоговый симулятор
    • Аппаратные средства
      • Начните здесь
      • Сравнение аппаратных средств
      • Инструменты отладки и память устройства
      • Debug Executive
      • Демо-платы и стартовые наборы
      • MPLAB® REAL ICE ™ внутрисхемный эмулятор
      • SAM-ICE JTAG Эмулятор
      • Atmel® ICE In-Circuit Emulator
      • Power Debugger
      • MPLAB® ICD 3 In-Circuit Debugger
      • MPLAB® ICD 4 внутрисхемный отладчик
      • PICkit ™ 3 In-Circuit Debugger
      • MPLAB® PICkit ™ 4 In-Circuit Debugger
      • MPLAB® Snap
      • Универсальный программатор MPLAB PM3
      • Аксессуары
          Заголовки эмуляции
        • и пакеты расширения эмуляции
        • Пакеты расширения процессора
        • и заголовки отладки
          • Начните здесь
          • Обзор PEP
          • и заголовков отладки
          • Обязательный список заголовков отладки
            • Обязательные заголовки отладки Таблица
            • AC162050, AC162058
            • AC162052, AC162055, AC162056, AC162057
            • AC162053, AC162054
            • AC162059, AC162070, AC162096
            • AC162060
            • AC162061
            • AC162066
            • AC162083
            • AC244023, AC244024
            • AC244028
            • AC244045
            • AC244051, AC244052, AC244061
            • AC244062
          • Дополнительный список заголовков отладки
            • дополнительный список заголовков отладки - устройства PIC12 / 16
            • дополнительный список заголовков отладки - устройства PIC18
            • дополнительный список заголовков отладки - устройства PIC24
          • Отладочные целевые следы заголовка
          • Отладочные Соединения Заголовка
      • SEGGER J-Link
      • K2L Сетевые инструменты
      • Советы по разработке инструментов разработки
      • Ограничения отладки - микроконтроллеры PIC
      • Технические замечания (ETNs)
      • [[li]] chipKIT ™ Встроенные платформы
  • проектов
    • Начните здесь
    • Преобразование мощности
      • AN2039 Четырехканальный секвенсор питания PIC16F1XXX
    • 8-битные микроконтроллеры PIC®
    • 8-битные микроконтроллеры AVR®
    • 16-битных микроконтроллеров PIC®
    • 32-разрядных микроконтроллеров SAM
    • 32-битные микропроцессоры SAM
      • Разработка приложений SAM MPU с MPLAB X IDE
      • SAM MPU Примеры программных пакетов
    • Дополнительный контент планируется...
  • Продукты
    • 8-битные микроконтроллеры PIC
    • 8-битных микроконтроллеров AVR
      • Начните здесь
      • 8-битная структура микроконтроллера AVR®
      • 8-битная периферия AVR®
        • Осциллятор
        • USART
        • прерываний
        • Аналоговый компаратор и эталон напряжения
        • Таймер / Счетчики
        • Датчик внутренней температуры
        • Операция с низким энергопотреблением
        • Сбросить источники
      • Начало работы с микроконтроллерами AVR®
      • Использование микроконтроллеров AVR® с Atmel START
      • Дополнительный контент планируется...
    • 16-битных микроконтроллеров PIC и DSC DSC
    • 32-битные микроконтроллеры
.

C ++ cout hex формат - переполнение стека

Переполнение стека
  1. Товары
  2. Клиенты
  3. Случаи использования
  1. Переполнение стека Публичные вопросы и ответы
  2. Команды Частные вопросы и ответы для вашей команды
  3. предприятие Частные вопросы и ответы для вашего предприятия
  4. работы Программирование и связанные с ним технические возможности карьерного роста
  5. Талант Нанимать технический талант
  6. реклама Связаться с разработчиками по всему миру

Загрузка…

,
Hex в ASCII | Конвертер шестнадцатеричных в текстовые строки

Введите шестнадцатеричные байты с любым префиксом / постфиксом / разделителем и нажмите кнопку Преобразование в
(например, 45 78 61 6d 70 6C 65 21):

folder_open Открыть файл поиск

Вставить шестнадцатеричные числа или удалить файл

Кодировка символов ASCII Unicode UTF-8, UTF-16 UTF-16 с прямым порядком байтов UTF-16 с прямым порядком байтов Windows-1252 Big5 (китайский) CP866 (русский) EUC-JP (японский) EUC-KR (корейский) GB 18030 (китайский) GB 2312 (китайский) ISO-2022-CN (китайский) ISO-2022-JP (японский) ISO-8859-1 (Latin1 / западноевропейский) ISO-8859-2 (Латинская 2 / Восточноевропейская) ISO-8859-3 (Latin3 / Южно-Европейский) ISO-8859-4 (Latin4 / Северная Европа) ISO-8859-5 (латиница / кириллица) ISO-8859-6 (латинский / арабский) ISO-8859-7 (латинский / греческий) ISO-8859-8 (латинский / иврит) ISO-8859-8-I (латиница / иврит) ISO-8859-10 (Latin6 / Nordic) ISO-8859-13 (Latin7 / Балтийский обод) ISO-8859-14 (Latin8 / кельтский) ISO-8859-15 (Latin9 / западноевропейский) ISO-8859-16 (Latin10 / Юго-Восточная Европа) KOI8-R (русский) КОИ8-У (украинский) Macintosh (x-mac-roman) Mac OS Кириллица (x-mac-кириллица) Shift JIS (японский) Windows-874 (тайский) Windows-1250 (восточноевропейская) Windows-1251 (кириллица) Windows-1252 (западноевропейская) Windows-1253 (греческий) Windows-1254 (турецкий) Windows-1255 (иврит) Windows-1256 (арабский) Windows-1257 (Балтика) Windows-1258 (вьетнамский) X-User-Defined

автообновление Конвертировать очистить Сбросить swap_vert Swap

content_copy Копировать save_alt Save

ASCII в шестнадцатеричный преобразователь ►

Кодировка текста ASCII использует фиксированный 1 байт для каждого символа.

Кодировка текста UTF-8 использует переменное число байтов для каждого символа. Это требует разделителя между каждым шестнадцатеричным числом.

Как конвертировать шестнадцатеричные в текст

Преобразовать шестнадцатеричный код ASCII в текст:

  1. Получить шестнадцатеричный байт
  2. Преобразование шестнадцатеричного байта в десятичное
  3. Получить символ кода ASCII из таблицы ASCII
  4. Продолжить со следующего байта
Пример

Преобразовать шестнадцатеричный ASCII-код 50 6C 61 6E 74 20 74 72 65 65 73 в текст:

Решение:

Используйте таблицу ASCII, чтобы получить символ из кода ASCII.

50 16 = 5 × 16 1 + 0 × 16 0 = 80 + 0 = 80 => «P»

6C 16 = 6 × 16 1 + 12 × 16 0 = 96 + 12 = 108 => «l»

61 16 = 6 × 16 1 + 1 × 16 0 = 96 + 1 = 97 => «a»

Для всех шестнадцатеричных байтов вы должны получить текст:

"Посадка деревьев"

Как преобразовать Hex в текст?

  1. Получить шестнадцатеричный байт-код
  2. Преобразование шестнадцатеричного байта в десятичное
  3. Получить символ десятичного кода ASCII из таблицы ASCII
  4. Продолжить со следующим шестнадцатеричным байтом

Как использовать Hex в ASCII Text Converter?

  1. Вставьте шестнадцатеричные байтовые коды в текстовое поле ввода.
  2. Выберите тип кодировки символов.
  3. Нажмите кнопку Преобразовать.

Как конвертировать шестнадцатеричный код в английский?

  1. Получить шестнадцатеричный байт-код
  2. Преобразование шестнадцатеричного байта в десятичное
  3. Получить английскую букву десятичного кода ASCII из таблицы ASCII
  4. Продолжить со следующим шестнадцатеричным байтом

Как конвертировать 41 гекс в текст?

Использовать таблицу ASCII:
41 = 4 × 16 ^ 1 + 1 × 16 ^ 0 = 64 + 1 = 65 = символ «A»

Как конвертировать 30 шестнадцатеричных в текст?

Использовать таблицу ASCII:
30 = 3 × 16 ^ 1 + 0 × 16 ^ 0 = 48 = «0» символ

"name": "Hex в ASCII Text Converter", "mainEntity": [{ "@type": "Вопрос", "name": "Как преобразовать Hex в текст?", "Принимаемый ответ": { "@напечатайте ответ", "текст": "
  1. Получить шестнадцатеричный байт-код
  2. Преобразование шестнадцатеричного байта в десятичное
  3. Получить символ десятичного кода ASCII из таблицы ASCII
  4. Продолжить со следующим шестнадцатеричным байтом

Подробнее

" } }, { "@type": "Вопрос", "name": "Как использовать Hex в ASCII Text Converter?", "Принимаемый ответ": { "@напечатайте ответ", "text": "
  1. Вставить шестнадцатеричные байтовые коды в текстовое поле ввода.
  2. Выберите тип кодировки символов.
  3. Нажмите кнопку Преобразовать.

Подробнее

" } }, { "@type": "Вопрос", "name": "Как преобразовать шестнадцатеричный код в английский?", "Принимаемый ответ": { "@напечатайте ответ", "текст": "
  1. Получить шестнадцатеричный байт-код
  2. Преобразование шестнадцатеричного байта в десятичное
  3. Получить английскую букву десятичного кода ASCII из таблицы ASCII
  4. Продолжить со следующим шестнадцатеричным байтом

Подробнее

" } }, { "@type": "Вопрос", "name": "Как конвертировать 41 гекс в текст?", "Принимаемый ответ": { "@напечатайте ответ", «текст»: «Использовать таблицу ASCII:
41 = 4 × 16 ^ 1 + 1 × 16 ^ 0 = 64 + 1 = 65 = символ« A »

Подробнее

" } }, { "@type": "Вопрос", "name": "Как конвертировать 30 шестнадцатеричных в текст?", "Принимаемый ответ": { "@напечатайте ответ", «текст»: «Использовать таблицу ASCII:
30 = 3 × 16 ^ 1 + 0 × 16 ^ 0 = 48 = '0' символ

шестнадцатеричный в ASCII таблица преобразования текста

Шестнадцатеричный Binary ASCII
Символ
00 00000000 NUL
01 00000001 SOH
02 00000010 STX
03 00000011 ETX
04 00000100 EOT
05 00000101 ENQ
06 00000110 ACK
07 00000111 BEL
08 00001000 BS
09 00001001 HT
0A 00001010 LF
0B 00001011 VT
0C 00001100 FF
0D 00001101 CR
0E 00001110 SO
0F 00001111 SI
10 00010000 DLE
11 00010001 DC1
12 00010010 DC2
13 00010011 DC3
14 00010100 DC4
15 00010101 NAK
16 00010110 SYN
17 00010111 ETB
18 00011000 CAN
19 00011001 EM
1A 00011010 SUB
1B 00011011 ESC
00011100 FS
1D 00011101 GS
1E 00011110 RS
1F 00011111 US
20 00100000 Космос
21 00100001 !
22 00100010 "
23 00100011 #
24 00100100 $
25 00100101 %
26 00100110 и
27 00100111 '
28 00101000 (
29 00101001 )
2A 00101010 *
2B 00101011 +
2C 00101100 ,
2D 00101101 -
2E 00101110 .
2F 00101111 /
30 00110000 0
31 00110001 1
32 00110010 2
33 00110011 3
34 00110100 4
35 00110101 5
36 00110110 6
37 00110111 7
38 00111000 8
39 00111001 9
3A 00111010 :
3B 00111011 ;
3C 00111100 <
3D 00111101 =
3E 00111110 >
3F 00111111 ?
40 01000000 @
41 01000001 A
42 01000010 B ​​
43 01000011 C
44 01000100 D
45 01000101 E
46 01000110 F
47 01000111 G
48 01001000 H
49 01001001 I
4A 01001010 J
4B 01001011 К
4C 01001100 L
4D 01001101 М
4E 01001110 N
4F 01001111 O
50 01010000 P
51 01010001 Q
52 01010010 R
53 01010011 S
54 01010100 T
55 01010101 U
56 01010110 V
57 01010111 Вт
58 01011000 X
59 01011001 Y
01011010 Z
5B 01011011 [
5C 01011100 \
5D 01011101 ]
5E 01011110 ^
5F 01011111 _
60 01100000 `
61 01100001 а
62 01100010 б
63 01100011 c
64 01100100 д
65 01100101 и
66 01100110 ф
67 01100111 г
68 01101000 ч
69 01101001 и
01101010 j
6B 01101011 к
6C 01101100 л
6D 01101101 м
6E 01101110 n
6F 01101111 o
70 01110000 р
71 01110001 q
72 01110010 р
73 01110011 с
74 01110100 т
75 01110101 u
76 01110110 v
77 01110111 Вт
78 01111000 x
79 01111001 и
01111010 z
7B 01111011 {
7C 01111100 |
7D 01111101 }
7E 01111110 ~
7F 01111111 DEL


См. Также

,

Отправить ответ

avatar
  Подписаться  
Уведомление о