Tooprogram.ru

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Дизассемблер hex файлов

Дизассемблер hex файлов

Версия 3 процессоры семейств 12, 16, 17.

Версия 4 — изменен редактор процессоров, добавлена 18 серия. Полностью переписано ядро работы и добавлены новые возможности. Проект был заморожен, т.к. выполнил свои функции по дизассемблированию, осталась отладочная версия без сохранения. Можно самостоятельно редактировать процессоры и мнемонику команд. Интеллектуальное распознавание регистров и их битовых значений, максимально корректная работа со страницами и банками.

Инструкции

Дизассемблер для Microchip PIC контроллеров.

Инструкция по работе:

2.Загрузить .hex файл при помощи стандартного диалога.

3.Нажать кнопку «S».

4.Выбрать соответствующий процессор.

5.После первого прохода появиться запрос на создание заголовочного файла для имен регистров и bits.При отказе файл не создается.

6.После второго прохода,

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

Инструкция по установке нового типа процессора:

1. Запустить диалог Setting -> Processors.

2.Выбрать или создать новую Family.

3. Создать новый процессор ( Processor -> New -> Editor -> OK).

4. Ввести разрядность ( Processor -> ComboBox(12,14,16)).

Address -> Programm — длина данных программ

Address -> EEPROM адрес загрузки в HEX файле

6.Поставить флажки на соответствующий BANK SFR(. в текущей версии не всегда о тслеживается правильно удаление флажков).

7.Выбрать количество SFR в каждом банке(SFR — специльные функциональные регистры).

8.Отредактировать или ввести соответствующие наименования регистров и bits, после каждого бита нажимать кнопку «Enter». ! Регистры на банки не отображаются, каждый банк вводить отдельно.

9.Нажать кнопку «OK» — данные сохраняться в файле Family.dis

Диалоговым окном Setting -> Instruction можно изменять мнемонику команд.

Данные по процессорам однозначно определяются файлом family.dis, по коммандам instr.dis, д ля ввода новых процессоров достаточно заменить только первый файл.

P.S. Страничные Label`s и названия SFR будут правильно определяться только при стандартных способах переключения страниц и банков данных.

1.добавлена сериализация для загрузки .hex файлов по умолчанию.

2.исправлена ошибка расширения файлов при сохранении.

3.исправлены ошибки подсчета текущей даты.

4.изменен код регистрации.

5.объеденены инструкции call и goto для 14,16-разрядных процессоров.

6.для 16-разрядных процессоров определена инструкция lcall.

7.исправлен выбор банка при выборе процессора.

1.при сериализации сразу выполняем дизассемблирование.

2.включена обработка расширения .bin файлов.

Читать еще:  Сегментация памяти ассемблер

1.При открывании файла он добавляется в Recent File list(ускоренное открытие).

2.Теперь при открывании файла обновляется содержимое окна.

1.Добавлен новый тип 18сХХХ серия. Возможны пока ещё ошибки, но для того и существует отладка.

2.Полностью переделан формат ввода и хранения инструкций и процессоров. (family1.dis,instr1.dis)

3.Теперь отдельный .inc файл не создается.

4.Теперь можно копировать уже набитые процессоры.

5.При вводе названий регистров и бит, если установлены метки, то значения копируются автоматически в установленные банки.

Дизассемблер для Microchip Pic контроллеров сборный ( отладочная версия без сохранения).

Дизассемблер hex файлов

Ассемблер считается сложным языком программирования. Хотя, припоминая, к слову, функциональное программирование, где нет ни переменных, ни циклов, а вместо них одни рекурсии и функции, я бы поспорил. Но, мне кажется, что я знаю причину такого мнения. Если взять рядовую книжку по предмету, то прежде чем написать свой blink, сперва придется прочитать добрую сотню страниц, если не больше, про архитектуру, регистры, шины, порты и т.д. Не самое легкое чтиво, надо сказать. Взяв для сравнения книжку Кернигана&Ритчи мы найдем «Hello World!» на первой же странице. Весомый аргумент в пользу Си, на мой взгляд.

В предыдущем посте я упоминал, что размер прошивки с программой Blink написанной на Си для ATtiny45 составляет 82 байта. В AVR каждая инструкция вместе с аргументом занимает два байта, т.е. одно слово. 82 делим на 2, получаем 41 ассемблерная инструкция. Наверно, должен сразу оговориться. Если вы не получаете за это деньги, то изучать Ассемблер нет никакого практического смысла, языка Си хватит «за глаза» для написания своих прошивок. НО. иногда желание заглянуть «под капот» бывает слишком сильным;)

Если уж экспериментировать с ассемблером, то для начала, разумно будет выбрать чип попроще. Мой выбор пал на ATtiny13. Его флеш-память составляет всего 1 Кбайт. Опять же 1024 делим пополам, получаем размер программы до 500 инструкций, что для ассемблера совсем немного. По правде говоря, многие устройства работают на этом чипе, на мой взгляд один из самых популярных микроконтроллеров. По счастливой случайности, распиновка ATtiny13 совпадает с распиновкой ATtiny45, следовательно и исходник blink.c не меняется:

Ах, чуть не забыл. Про книжки по ассемблеру AVR.

Как видно, для ATtiny13 blink весит уже всего 68 байт против 82 для ATyiny45. Заглядываем под капот:

Итого 34 команды если пересчитаете нумерованые строки. т.е 68/2, все сходится. Сначала содержимое скорее всего не очень понятно, поэтому для внесения ясности, будет кстати вспомнить, что у нас имеется исходник программы и объектный файл. Запустив avr-objdump с опцией -S мы получим «смешаный код». Исходник и соответствующую трансляцию на ассемблере:

Читать еще:  Рекурсия си шарп

Прямо говоря не густо, ну чтож бывает. Обратите внимание на блок между main и exit, выделенный зеленым. Это и есть наша программа Blink на AVR Assembler. Все что выше зеленого блока, это таблица векторов прерываний, которая по спецификации должна идти перед программой. Это т.н. «шапка».

Теперь если вдуматься, то получим следующую структуру программы:

Как видете, все сводится к дюжине команд. В AVR есть две группы регистров: регистры общего назначения (РОН) и регистры ввода-вывода (РВВ).

Наиболее интересный код здесь во второй фигурной скобке, который реализует задержку по времени. Этот алгоритм подробно разобран в книге Юрия Ревича, глава пятая «задержка». Только берите второе издание книги, в первом содержится опечатка: используется несуществующая команда suci вместо subi.

Вкратце. Нам нужно выполнить задержку на заданное время, мы знаем сколько времени выполняется каждая команда. Задержка выполняется последовательным вычитаним еденицы из числа до достижении нуля. комбинация команд: (subi + sbci + sbci) реализует декремент трехбайтного числа. Сначала вычитается младший байт, если он обнуляется, то вычитается еденица из среднего байта, если и он обнуляется от вычитается еденица из старшего байта. Если старший байт доходит до нуля, то условие перехода для оператора brne перестает выполнятся и программа выходит из цикла. В книге Юрия Ревича, вместо brne используется brcc. При этом операторе, цикл выполняет на одну итерацию больше, т.е. пока из нуля не вычитают еденицу.

Теперь считаем. Частота микроконтроллера 1 000 000 тактов в секунду. Цикл вычитания трехбайтного числа выполняется за: sbui, sbci — по одному такту, brne — два такта. Итого пять тактов. Т.е. надо вычитать число 1000000/5.

Смотрим на программу. Младший байт в r18 — 0x3F, средний байт в r19 — 0х0D, старший байт в r24 — 0x03. Итоговое число — 0x030D3F

Можно ли преобразовать HEX файл в файл ассемблера (ASM)

Перейти к странице

elvis03

Что это ? Прошивки Схемы Справочники Маркировка Корпуса Программаторы Аббревиатуры Частые вопросы Обмен ссылками Ссылки дня

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

Package (корпус) — вид корпуса электронного компонента
SOT-89 — пластковый корпус для поверхностного монтажа
SOT-23 — миниатюрный пластковый корпус для поверхностного монтажа
TO-220 — корпус для монтажа (пайки) в отверстия
SOP (SOIC, SO, TSSOP) — миниатюрные корпуса для поверхностного монтажа

Programmer (программатор) — устройство для записи (считывания) информации в память или другое устройство
Ниже список некоторых программаторов:
Postal-2,3 — универсальный программатор по протоколам I2C, SPI, MW, IСSP и UART. Подробно — Postal — сборка, настройка
TL866 (TL866A, TL866CS) — универсальный программатор через USB интерфейс
CH341A — самый дешевый (не дорогой) универсальный программатор через USB интерфейс

PWM (Pulse Width Modulation) — Широтно-импульсная модуляция
SPI (Serial Peripheral Interface Protocol) — Протокол последовательного периферийного интерфейса
TSOP (Thin Small Outline Package) – Тонкий корпус с уменьшенным расстоянием между выводами
USB (Universal Serial Bus) — Универсальная последовательная шина
DMA (Direct Memory Access) — Модуль для считывания и записи RAM без задействования процессора

После регистрации аккаунта на сайте Вы сможете опубликовать свой вопрос или отвечать в существующих темах. Участие абсолютно бесплатное.

Читать еще:  Язык си с нуля

Кто отвечает на вопросы ?

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

Как найти нужную информацию ?

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

По каким маркам можно спросить ?

По любым. Наиболее частые ответы по популярным брэндам — LG, Samsung, Philips, Toshiba, Sony, Panasonic, Xiaomi, Sharp, JVC, DEXP, TCL, Hisense, и многие другие в том числе китайские модели.

Что еще я смогу здесь скачать ?

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

Ссылка на основную публикацию
Adblock
detector