December 23, 2024

PGMFI [RU]

Русское зеракало PGMFI.ORG

ASM662: Ассемблер/дизассемблер для Oki 66201/66207/66301

ASM662 — это инструмент для работы с процессорами Oki 66201, 66207 и 66301, используемыми в некоторых ЭБУ Honda. Он поддерживает ассемблирование и дизассемблирование кода и находится в стадии активной разработки. Проект распространяется под лицензией BSD, что позволяет свободно использовать его в любых целях.


Особенности:

  1. Совместимость:
    ASM662 также работает с процессорами NEC 66911, применяемыми в ЭБУ P13, P14, P0D.
  2. Последние обновления:
    • Последняя версия для Windows (1.2) была выпущена 8 октября 2003 года.
    • Исходный код доступен в CVS-репозитории.
    • Скачать готовые исполняемые файлы можно здесь.
  3. Режим эксперимента:
    • В текущей версии дизассемблер позволяет указать адреса, которые не следует считать таблицами ROM.
    • Пример использования:
dasm662 p30.bin p30.asm 5e20 5e59 7133 72fa

Известные проблемы:

  1. Флаг DD:
    • В архитектуре Oki 66k один и тот же опкод может интерпретироваться по-разному в зависимости от состояния флага DD.
    • ASM662 отслеживает этот флаг простым способом, который работает в большинстве случаев, но иногда приводит к ошибкам:
      • Неправильная обработка косвенных переходов:
        Эти переходы отсутствуют в ROM-ах P28, P30, P72, но встречаются в P13.
      • Субпрограммные вызовы, изменяющие DD:
        Такие вызовы присутствуют во всех ROM, и это вызывает неточности в дизассемблировании.
        Однако, несмотря на ошибки, ASM662 всегда генерирует код, который можно повторно собрать в идентичный набор байт.
  2. Индиректные переходы:
    ASM662 пока не обрабатывает их корректно, так как они не встречаются в большинстве ROM.
  3. Сложные субпрограммы:
    Для правильной обработки субпрограмм, изменяющих DD, потребуется отложенное дизассемблирование до анализа их влияния. Этот подход ближе к декомпиляции, чем к дизассемблированию, и пока не реализован.

Планы и перспективы:

  • Релокируемое дизассемблирование:
    Основная цель — обеспечить полный перенос дизассемблированного кода с минимальными потерями.
  • Расширенный анализ кода:
    В будущем возможно добавление умного анализа, чтобы улучшить обработку сложных инструкций, изменяющих DD, LRB и USP.

ASM662 — мощный инструмент для работы с ROM ЭБУ Honda. Несмотря на текущие ограничения, он предоставляет стабильную основу для анализа и модификации программного обеспечения ЭБУ.

Leave a Reply

Your email address will not be published. Required fields are marked *