реклама на сайте
подробности

 
 
> Перевод дизассемблера обратно в исходник
gem
сообщение Jun 13 2018, 15:08
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 27-05-18
Пользователь №: 104 674



Приветствую Уважаемые!
Есть дизассемблированный код процессора pic18ф4620/2620, пытаюсь собрать исходник обратно с помощью МПЛАБ IDE МPASMWIN, чтобы потихоньку разбираться что к чему и как работает.
Естественно вылазит куча ошибок.
Самая распространенная это Error[126] 32273 : Argument out of range (8423 not between FC00 and 03FF). В коде данных строк стоит переход BRA 720.
Про команду эту почитал, и вроде метка есть L720. Но ругается я так понимаю на диапазон. Как узнать почему ?
Та же ошибка, только тут уже не нравиться RCALL
L1903 RCALL 987
NOP
BRA L1850
BRA L1851
NOP
NOP
BNC L1852.

и еще

Error[126] 27724 : Argument out of range (9FF8 not between 0000 and FFFF) // CALL 0x0F9FF8,FAST
Error[126] 27769 : Argument out of range (D29A not between 0000 and FFFF) // GOTO 0x1ED29A


Понятно что, тут возможно код так дизассемблировался и в идеале он уже не тот, но все же 80% кода собирается и выглядит один в один с исходником хекса, если все убрать где начинаются это ошибки. Помогите исправить, чтобы программа компилировалась.

https://mega.nz/#!FMZlGLzZ!EtARv8iv...7F1VN1M4MkJKPFA

Сам код.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Марк_Я
сообщение Jun 16 2018, 04:11
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 178
Регистрация: 19-09-07
Из: М.О. г.Фрязино
Пользователь №: 30 656



В системе команд PIC18 (как и других PIC-ов) под литералом понимается константа в поле команды.
То есть в команде movlw 0x5C константа 0x5C является литералом. Отсюда и аббревиатура самой команды move literal to working register.

По поводу дизассемблирования.
Автоматические дизасмы - полная фигня. Для восстановления исходника на АСМе из бинарника требуется только текстовая декомпиляция и ПОНИМАНИЕ ФУНКЦИОНАЛА исследуемого прибора. Ну и знание архитектуры МК, естественно.

Как то у меня оказался утерянным последний исходник под dsPIC33, но остался экземпляр живого устройства с открытой прошивкой и исходник предыдущей прошивки. Строк кода - около 3000. Изменения касались лишь примерно 5 % исходника (по сравнению с предыдущим). Я пахал как папа Карло примерно 2 недели. Восстановил, но имена пары флагов так и остались бессмысленными. Примерно понимаю функционал, но сил и времени на эти флаги уже не осталось. Плюнул и оставил их как есть - безымянными.
Это я к тому, что даже свой собственный код с полным пониманием что куда и откуда декомпилировать крайне сложно и долго.
Порой гораздо проще и полезнее написать заново.
Go to the top of the page
 
+Quote Post
k155la3
сообщение Jun 17 2018, 14:40
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(Марк_Я @ Jun 16 2018, 07:11) *
. . . под литералом понимается константа в поле команды.

Перечитал определение из "кладезя мудрости". Если в "двух словах" - различные константы в исходном коде.
(ониже, - в машинных кодах команд). Бинарные константы "смотреть" в дампе достаточно проблематично,
а вот символьные и строковые - вполне комфортно. Поэтому я начинаю "разбор" с них.
Затем - удобно выделять константы во флеш формата float'32 (например массивы, таблицы достаточно легко идентифицировать).
Лично мне (почему-то) литералами бинарные значения float как-то называть некомфортно. Но это - уже психоанализ sm.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- gem   Перевод дизассемблера обратно в исходник   Jun 13 2018, 15:08
- - Baser   Встроенные в IDE дизассемблеры, как правило, не об...   Jun 13 2018, 15:52
|- - kovigor   Цитата(Baser @ Jun 13 2018, 18:52) Тут ну...   Jun 14 2018, 05:46
|- - jcxz   Цитата(kovigor @ Jun 14 2018, 08:46) Если...   Jun 14 2018, 06:27
- - gem   Тут использовался не встроенный в МПЛАБ дизассембл...   Jun 13 2018, 15:55
- - k155la3   IDA. Посмотрите, возможно есть PIC. Более удобного...   Jun 13 2018, 17:44
|- - Smen   Цитата(k155la3 @ Jun 13 2018, 22:44) Боле...   Jun 14 2018, 11:20
- - k155la3   Посмотрел листинг. Всего - около 500 страниц текст...   Jun 14 2018, 09:38
- - gem   В этом все и дело, сам код без проблем компилирует...   Jun 14 2018, 14:24
|- - Smen   Цитата(gem @ Jun 14 2018, 18:24) Как их в...   Jun 15 2018, 06:22
- - k155la3   литералы смотрите в FAR. По адресу или смещению на...   Jun 14 2018, 15:45
- - gem   Чтобы что-то дополнить нужно исходник иметь, для э...   Jun 15 2018, 16:09
|- - k155la3   Цитата(gem @ Jun 15 2018, 19:09) (1)Как д...   Jun 15 2018, 17:10
- - Марк_Я   Цитата(k155la3 @ Jun 17 2018, 17:40) Поэт...   Jun 19 2018, 10:33
- - k155la3   Под "разбором" с литералами-константами ...   Jun 19 2018, 12:14
- - Марк_Я   Цитата(k155la3 @ Jun 19 2018, 15:14) напр...   Jun 19 2018, 14:45
- - k155la3   Цитата(Марк_Я @ Jun 19 2018, 17:45) Извин...   Jun 19 2018, 18:21


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 08:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01404 секунд с 7
ELECTRONIX ©2004-2016