Чем и как открыть файл HEX
Формат файла hex, сокращённо от «шестнадцатеричный» или «base-16», является структурой необработанных данных, которой следуют все файлы, хранящиеся на вашем компьютере. Хотя буквально каждый документ хранится в этом формате, найти его на ПК практически невозможно. Хотя далеко не все знают, что возможность напрямую изменять необработанные биты и байты на ПК иногда может быть очень полезна.
Что обозначает расширение 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 может понадобиться обычному человеку, чтобы посмотреть в нём некую информацию. На самом деле для такой простой задачи вполне достаточно обычного Блокнота – стандартного приложения, которое имеется в любой системе Windows. Ведь этот файл, по сути, является текстовым, просто в нём записана специфическая информация, но обычными символами.
Для этого достаточно кликнуть на файле правой кнопкой мыши, выбрать в меню пункт «Открыть» или «Открыть с помощью», затем «Выбрать из списка установленных программ», а далее просто выбрать стандартный Блокнот. Снимите галочку с пункта «Использовать выбранную программу для всех файлов этого типа» – вдруг вы его потом будете открывать другой программой. Можно просто открыть Блокнот, а файл в него перетащить, и он откроется.
Гораздо удобнее для открытия таких файлов подходит другая версия Блокнота – Notepad++. Скачать можно по этой ссылке. Эта программа также есть у многих, так как более удобна. Но она может к тому же распознавать многие языки программирования и файлы HEX в ней выглядят гораздо удобнее, так как есть выделение цветом. Notepad++ представляет собой как бы примитивный HEX-редактор, и этим можно пользоваться совершенно свободно.
Так выглядит HEX-файл, открытый в Notepad++. В стандартном Блокноте так же, но без цвета.
А теперь рассмотрим более подробно, для чего может понадобиться открывать, а тем более изменять файлы с шестнадцатеричным содержимым. Кстати, если вы собираетесь делать это часто, то лучше скачайте и установите специальный HEX-редактор – их в Интернете довольно много. Некоторые из них подробнее рассматриваются далее.
Взлом игр и файлов
Популярная причина, по которой вы можете использовать шестнадацтеричный редактор, – взлом игр. Вы можете загрузить документ сохранения игры и изменить сумму денег, например, от 1000 до 1000000 долларов. В более поздних играх всё сделано намного сложнее. Многие современные игры используют либо сжатие, либо шифрование, что во много раз затрудняет декомпиляцию состояния сохранения или игры. Тем не менее, некоторые игры по-прежнему позволяют редактировать определённые переменные, например, Sonic Spinball. В дополнение к просмотру файлов игры, из сохранённого файла иногда можно извлечь другую важную информацию, к которой у вас иначе не было бы доступа. Это сильно зависит от типа файла и того, какую информацию вы ищете, но использование шестнадцатеричного редактора полезно для определения того, что именно находится в документе.
Отладка и редактирование
Наконец, еще одна популярная причина, по которой вы можете использовать шестнадцатеричный редактор, – это если вы программист, и вам нужно отладить код. Вместо того, чтобы возвращаться к перекомпиляции кода, для проверки шаблона может потребоваться простое шестнадцатеричное редактирование. Но для начала обязательно убедитесь, что у вас есть резервная копия, прежде чем изменять какие-либо файлы с помощью шестнадцатеричного редактора.
Какие hex-редакторы использовать
Шестнадцатеричный редактор представляет собой софт, используемый для просмотра и редактирования бинарных файлов. Двоичный документ представляет собой документ, который содержит данные в машиночитаемой форме. HEX-редакторы позволяют изменять содержимое необработанных данных файла. Поскольку шестнадцатеричный редактор используется для редактирования двоичных файлов, их иногда называют двоичным редактором или редактором двоичных файлов. Если открыть документ с помощью шестнадцатеричного редактора, появится сообщение о том, что документ редактируется в шестнадцатеричном формате, а процесс использования шестнадцатеричного редактора называется шестнадцатеричным редактированием. Шестнадцатеричные редакторы отличаются от обычных текстовых рядом функций. Основой шестнадцатеричного редактора является то, что они отображают необработанное содержимое файла. Нет кодирования или перевода в текст – только необработанный машинный код. Во-вторых, номера строк вместо того являются адресом смещения от начала файла. Мы подобрали несколько лучших бесплатных программ для просмотра и редактирования документов HEX.
HxD
HxD – это бесплатный шестнадцатеричный редактор, который может открывать и изменять компьютерный код. Это очень мощная утилита в правильных руках, которая может проверять, сравнивать и диагностировать файлы, диски, образы дисков, память и журналы, а также исправлять ошибки и восстанавливать структуру диска.
Преимущества:
- Действительно большие данные – последняя версия HxD обрабатывает большие наборы данных. Если он помещается на диск, HxD сможет его открыть.
- Стандартные параметры – HxD содержит множество полезных дополнений, таких как генератор контрольных сумм, поддержка нескольких наборов символов, редактор ОЗУ, уничтожитель файлов, разбиение и объединение, неограниченное количество отмен и портативная версия.
- Экспорт данных – программа экспортирует данные в исходный код (C, C#, Java, Pascal и VB.NET) или в шестнадцатеричные форматы.
Недостатки:
- Не для неопытного пользователя, но это не недостаток. Программа ориентирована на продвинутых пользователей.
DeltaHex Editor
Один из лучших hex-редакторов на основе библиотеки deltahex. Используйте действие «Открыть как шестнадцатеричный» в главном меню «Файл» или в контекстном меню файлов проекта.
Характеристики:
- Отображение данных в виде шестнадцатеричного кода, предварительный просмотр текста.
- «Вставить» и «Перезаписать» режимы редактирования.
- Поддержка выбора и буфера обмена.
- Отмена/повтор.
- Выбор кодировки.
- Отображение непечатных символов.
- Коды также могут быть двоичными, восьмеричными или десятичными.
- Поиск текстового/шестнадцатеричного кода с соответствующей подсветкой.
- Дельта-режим – изменения сохраняются только в памяти до сохранения.
- Поддержка огромных файлов.
Free Hex Editor Neo
Free Hex Editor Neo – это самый быстрый бесплатный редактор двоичных файлов для платформы Windows. Алгоритмы обработки данных Neo Hex Editor чрезвычайно оптимизированы и тщательно настроены для обработки операций с большими файлами.
Характеристики программы:
- Неограниченное Undo/Redo.
- Редактировать, Копировать, Вырезать, Вставить, Удалить, Заполнить, Импорт/Экспорт, Вставить шаблон/файл, Изменить размер файла, Смещение к началу, Изменить биты.
- Поиск и замена шаблонов.
- Подсветка.
- Байты, слова, двойные слова, группировка четырёх слов.
- Шестнадцатеричное, Десятичное, Восьмеричное, Двоичное и т.д. представление данных.
- Изменение атрибутов файла.
- Анализ данных буфера обмена.
- Создание бинарных патчей, поиск/замена регулярных выражений.
- Многоязычный интерфейс.
Функции и возможности утилиты:
- Статистика и шестнадцатеричный анализатор – модуль анализа двоичных данных позволяет анализировать распределение байтов, символов и строк по шестнадцатеричным дампам и текстовым данным. Анализатор двоичных файлов 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…», которая запускает специальный режим редактирования. Когда вы находитесь в этом режиме, вы можете увидеть местоположение и шестнадцатеричные значения каждого бита файла. У вас есть два варианта корректировки – вы можете редактировать шестнадцатеричные значения по местоположению, или справа у вас есть буквенно-цифровое представление этого значения, которое вы также можете редактировать.
XVI32
XVI32 также очень способный шестнадцатеричный редактор. Как и в PSPad, вы можете редактировать шестнадцатеричные значения напрямую или через отображение символов. В нём также есть несколько расширенных инструментов редактирования шестнадцатеричных кодов, таких как калькулятор адресов для проверки смещений и других специфичных для шестнадцатеричных данных параметров, которые могут помочь вам обойти шестнадцатеричный документ. Если вы, конечно, знаете, что делаете.
Знание того, как работает ваш ПК, становится всё более и более важным, поскольку техника становится всё проще и проще в использовании. Если у вас остались вопросы относительно редактирования шестнадцатеричных файлов, оставьте комментарий под этой статьёй.
Как открыть файл HEX? Расширение файла .HEX
Что такое файл HEX?
Файлы с расширением HEX являются исходными файлами, используемыми для сохранения различных данных, хранящихся в шестнадцатеричной системе. Они могут включать настройки, конфигурации или другую информацию.
Файлы HEX могут встречаться в текстовом или двоичном виде. Текстовые файлы HEX можно легко открыть с помощью стандартной программы редактирования текста, но для отображения содержимого двоичных файлов требуется специальный шестнадцатеричный редактор. HEX-файл является результатом преобразования исходного кода в машинный код.
Где используются HEX файлы?
Данные, содержащиеся в файлах HEX, используются компиляторами и ассемблерами в процессе написания кода, управляющего микроэлементами, такими как встроенные системы, память EEPROM или флэш-память. Микроэлементы устанавливаются во многих обычно используемых устройствах, как менее, так и более продвинутых, например: пульты дистанционного управления или системы, управляющие двигателем автомобиля.
Структура данных в файлах HEX
Шестнадцатеричные данные в HEX-файле хранятся в строках текста, и каждый из них состоит из шести элементов:
- Стартовый тег — двоеточие;
- Количество приманок — две цифры в шестнадцатеричной системе, которые определяют длину записи данных;
- Адрес — четыре цифры в шестнадцатеричной системе, которые позволяют адресовать до 64 КБ памяти на один сегмент;
- Тип записи — две цифры в шестнадцатеричной системе, от 00 до 05;
- Данные — конфигурация данных, которая хранит приманку в шестнадцатеричной текстовой форме;
- Контрольная сумма — две цифры в шестнадцатеричной системе, которые составляют контрольную сумму записи без двоеточия.
Программы, которые поддерживают HEX расширение файла
В следующем списке перечислены программы, совместимые с файлами HEX, которые разделены на категории 3 в зависимости от операционной системы, в которой они доступны. Файлы с суффиксом HEX могут быть скопированы на любое мобильное устройство или системную платформу, но может быть невозможно открыть их должным образом в целевой системе.
Updated: 12/15/2019
Как открыть файл HEX?
Отсутствие возможности открывать файлы с расширением HEX может иметь различное происхождение. Что важно, все распространенные проблемы, связанные с файлами с расширением HEX, могут решать сами пользователи. Процесс быстрый и не требует участия ИТ-специалиста. Мы подготовили список, который поможет вам решить ваши проблемы с файлами HEX.
Шаг 1. Скачайте и установите FlexHex
Проблемы с открытием и работой с файлами HEX, скорее всего, связаны с отсутствием надлежащего программного обеспечения, совместимого с файлами HEX на вашем компьютере. Этот легкий. Выберите FlexHex или одну из рекомендованных программ (например, Hex Editor, Windows Notepad, NotePad++ text editor) и загрузите ее из соответствующего источника и установите в своей системе. Полный список программ, сгруппированных по операционным системам, можно найти выше. Если вы хотите загрузить установщик FlexHex наиболее безопасным способом, мы рекомендуем вам посетить сайт и загрузить его из официальных репозиториев.
Шаг 2. Убедитесь, что у вас установлена последняя версия FlexHex
Вы по-прежнему не можете получить доступ к файлам HEX, хотя FlexHex установлен в вашей системе? Убедитесь, что программное обеспечение обновлено. Разработчики программного обеспечения могут реализовать поддержку более современных форматов файлов в обновленных версиях своих продуктов. Если у вас установлена более старая версия FlexHex, она может не поддерживать формат HEX. Последняя версия FlexHex должна поддерживать все форматы файлов, которые совместимы со старыми версиями программного обеспечения.
Шаг 3. Настройте приложение по умолчанию для открытия HEX файлов на FlexHex
После установки FlexHex (самой последней версии) убедитесь, что он установлен в качестве приложения по умолчанию для открытия HEX файлов. Следующий шаг не должен создавать проблем. Процедура проста и в значительной степени не зависит от системы
Изменить приложение по умолчанию в Windows
- Щелкните правой кнопкой мыши на файле HEX и выберите «Открыть с помощью опцией».
- Далее выберите опцию Выбрать другое приложение а затем с помощью Еще приложения откройте список доступных приложений.
- Наконец, выберите Найти другое приложение на этом… , укажите папку, в которой установлен FlexHex, установите флажок Всегда использовать это приложение для открытия HEX файлы свой выбор, нажав кнопку ОК
Изменить приложение по умолчанию в Mac OS
- Щелкните правой кнопкой мыши на файле HEX и выберите Информация.
- Откройте раздел Открыть с помощью, щелкнув его название
- Выберите подходящее программное обеспечение и сохраните настройки, нажав Изменить все
- Наконец, это изменение будет применено ко всем файлам с расширением HEX должно появиться сообщение. Нажмите кнопку Вперед, чтобы подтвердить свой выбор.
Шаг 4. Убедитесь, что HEX не неисправен
Вы внимательно следили за шагами, перечисленными в пунктах 1-3, но проблема все еще присутствует? Вы должны проверить, является ли файл правильным HEX файлом. Проблемы с открытием файла могут возникнуть по разным причинам.
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 звезд отличная)
Как известно любая информация будь то текст, изображение или видео, по сути, является ничем иным как набором двоичного кода — последовательности нулей и единиц. Именно в таком виде на жёстком диске хранятся данные. Понятие двоичный код едва ли не абстрактное, это не запись в привычном понимании этого слова, двоичный или машинный код это скорее состояние микроскопических ячеек на магнитной поверхности жесткого диска. Положительный заряд такой ячейки имеет знак плюс или 1, отрицательный — минус или 0.
Логически объединенные последовательности нулей и единиц как раз и составляют то, что мы называем файлами. Но ведь мы знаем и то, что типов файлов очень много. Есть текстовые файлы, мультимедийные, архивные, системные, исполняемые и так далее. Каким же образом операционная система определяет как читать или обрабатывать тот или иной файл? Прикладные программы распознают тип файла по его расширению — набору символов следующих после имени файла и отделенных от него точкой.
Но что будет, если расширение удалить? Всё правильно, операционная система не сможет открыть такой файл, так как не будет знать какую программу для этого использовать. Однако ни логическая структура, ни содержимое переименованного файла от этого не изменится. Вы и сами в этом можете убедиться удалив расширение какого-нибудь файла, а затем попробовав его открыть соответствующей программой. Уверены, с этим у вас проблем не возникнет.
Следовательно, вовсе не расширение определяет тип файла. Тогда что же? Тип файла определяет его формат или иначе спецификация структуры данных. Расширение и формат очень часто путают, хотя на деле это совершенно разные понятия. Тут возникает вполне закономерный вопрос, а как определить формат файла, если его расширение по какой-то причине оказалось утрачено? Оказывается очень просто.
Грубо говоря, все файлы состоят из двух частей. Первая часть это заголовок, содержащий различную метаинформацию включая те данные, которые позволяют прикладным программам этот самый файл идентифицировать. Вторая часть это «тело» файла. Отвечающая за определение типа файла часть заголовка файла именуется дескриптором или описанием. Наиболее распространёнными типами дескрипторов являются HEX и ASCII. Первый тип заголовков можно просмотреть только с помощью специальных утилит — шестнадцатеричных редакторов.
Для просмотра дескрипторов второго типа можно обойтись обычным текстовым редактором, тем же Блокнотом или Notepad++. Однако следует учитывать, что далеко не все последовательности байтов можно перевести в ASCII-код, поэтому для определения формата всё-таки лучше использовать HEX-редакторы. Открытый в HEX-редакторе файл отображается в виде матрицы из последовательности байтов. Каждая ячейка соответствует одному байту. Данные дескриптора содержатся как раз в первых трёх ячейках (реже двух или четырех), расположенных по горизонтали. Представляют они из себя шесть символов в шестнадцатеричном счислении, например 49 44 33 или ff d8 e0.
Естественно они нуждаются в расшифровке. А расшифровать их можно на специальных сайтах с описаниями форматов. Одним из лучших сайтов, где можно определить формат по HEX-дескриптору является open-file.ru. Есть и другие подобные ресурсы, но они не настолько удобны. На open-file.ru же имеется специальная поисковая форма, куда можно вставить HEX или ASCII дескриптор и пробить его по базе данных. Система быстро найдёт соответствующий формат и предоставит вам его полное описание.
С HEX-редакторами всё более или менее понятно, но как мы сказали для определения ASCII-заголовков также можно использовать редакторы текстовые. Принцип здесь тот же самый, открываем файл Блокнотом или Notepad++, копируем первые символы и вставляем их в поисковое поле того же open-file или другого сайта с поддержкой поиска по заголовкам.
Казалось бы всё очень просто, но есть в деле идентификации форматов и свои сложности. Иногда ASCII-заголовки совпадают с расширением файла (RAR и PDF), но может быть и такое, что заголовок оказывается принадлежащим сразу нескольким форматам. Это можно видеть на примере офисного формата DOCX (PK и 50 4b 03 04). В таких случаях точно определить формат проблематично.
Но круг поиска можно сузить. Для этого рекомендуется просматривать первую, вторую и третью строку заголовка в текстовом редакторе, так как содержащиеся в них элементы также могут косвенно указывать на принадлежность к тому или иному типу файлов.
Так, строка [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 формат — переполнение стека
Переполнение стека- Товары
- Клиенты
- Случаи использования
- Переполнение стека Публичные вопросы и ответы
- Команды Частные вопросы и ответы для вашей команды
- предприятие Частные вопросы и ответы для вашего предприятия
- работы Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимать технический талант
- реклама Связаться с разработчиками по всему миру
Загрузка…
, Введите шестнадцатеричные байты с любым префиксом / постфиксом / разделителем и нажмите кнопку Преобразование в
(например, 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 в текст:
- Получить шестнадцатеричный байт
- Преобразование шестнадцатеричного байта в десятичное
- Получить символ кода ASCII из таблицы ASCII
- Продолжить со следующего байта
Пример
Преобразовать шестнадцатеричный 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 в текст?
- Получить шестнадцатеричный байт-код
- Преобразование шестнадцатеричного байта в десятичное
- Получить символ десятичного кода ASCII из таблицы ASCII
- Продолжить со следующим шестнадцатеричным байтом
Как использовать Hex в ASCII Text Converter?
- Вставьте шестнадцатеричные байтовые коды в текстовое поле ввода.
- Выберите тип кодировки символов.
- Нажмите кнопку Преобразовать.
Как конвертировать шестнадцатеричный код в английский?
- Получить шестнадцатеричный байт-код
- Преобразование шестнадцатеричного байта в десятичное
- Получить английскую букву десятичного кода ASCII из таблицы ASCII
- Продолжить со следующим шестнадцатеричным байтом
Как конвертировать 41 гекс в текст?
Использовать таблицу ASCII:
41 = 4 × 16 ^ 1 + 1 × 16 ^ 0 = 64 + 1 = 65 = символ «A»
Как конвертировать 30 шестнадцатеричных в текст?
Использовать таблицу ASCII:
30 = 3 × 16 ^ 1 + 0 × 16 ^ 0 = 48 = «0» символ
- Получить шестнадцатеричный байт-код
- Преобразование шестнадцатеричного байта в десятичное
- Получить символ десятичного кода ASCII из таблицы ASCII
- Продолжить со следующим шестнадцатеричным байтом
Подробнее
» } }, { «@type»: «Вопрос», «name»: «Как использовать Hex в ASCII Text Converter?», «Принимаемый ответ»: { «@напечатайте ответ», «text»: «- Вставить шестнадцатеричные байтовые коды в текстовое поле ввода.
- Выберите тип кодировки символов.
- Нажмите кнопку Преобразовать.
Подробнее
» } }, { «@type»: «Вопрос», «name»: «Как преобразовать шестнадцатеричный код в английский?», «Принимаемый ответ»: { «@напечатайте ответ», «текст»: «- Получить шестнадцатеричный байт-код
- Преобразование шестнадцатеричного байта в десятичное
- Получить английскую букву десятичного кода ASCII из таблицы ASCII
- Продолжить со следующим шестнадцатеричным байтом
Подробнее
» } }, { «@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 |
1С | 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 |
5А | 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 | и |
6А | 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 | и |
7А | 01111010 | z |
7B | 01111011 | { |
7C | 01111100 | | |
7D | 01111101 | } |
7E | 01111110 | ~ |
7F | 01111111 | DEL |