Перейти к содержанию
    

Дизассемблер для STC12C5A60S2

Добрый всем день.

возникла необходимость восстановить программу по HEX-файлу.

Использую d52.exe, но результат неприемлемый.

На выходе нечто похожее на программу, но в изобилии команды вида

 

movx @dptr,a

 

которые смысла не имеют при отсутствии внешней памяти (а ее нет в исходном устройстве).

Есть ли вероятность получить работоспособный код, или лучше выбросить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть ли вероятность получить работоспособный код, или лучше выбросить?

Чтобы получить "исходники" из hex, дизассемблеру нужны подсказки от человека. Получение хороших "исходников" - итерационный процесс: подсказки человека несколько раз уточняются. Лучше (удобнее) вносить уточнения в интерактивном режиме. Лучший интерактивный дизассемблер - IDA.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо

Я лет 20 назад пользовался DASM51, там было легко и просто. Правда, контроллеры были Intel

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А не понятные команды, это могут быть какие нибудь таблицы

Да, таблицы там есть. Но все равно в теле программы "левые"команды.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но все равно в теле программы "левые"команды.

Большинство дисассемблеров не могут разделить команды и "константы" в памяти программ. "Константами" могут выступать, например, строки текста, выдаваемые программой на дисплей/терминал. Тогда команде "movx @dptr,a" соответствует байт со значением F0, что, вероятно, соответствует какой-то букве кириллицы (в некоторых кодировках - буква "р").

В некоторых дизассемблерах человек может подсказать, например: "с адреса ХХХХ лежит строка символов, которая заканчивается нулевым символом"... Естественно, подсказки - некие специфические команды, уникальные для каждого дизассемблера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"Константами" могут выступать, например, строки текста, выдаваемые программой на дисплей/терминал. Тогда команде "movx @dptr,a" соответствует байт со значением F0, что, вероятно, соответствует какой-то букве кириллицы (в некоторых кодировках - буква "р").

 

Вот тут полезно дамп памяти в двоичном представлении иметь: текстовые строчки сразу видны будут

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

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

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...