Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Дизассемблер для 51го
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
Shread
Нужен дизассемблер, который генерит код удобоваримый для транслятора ассемблера, встроенного в IAR EW MCS-51. Удобный дизассеблер IDA Pro, но тот асменный файл, котоый она генерит скормить IAR'у быстро не получилось.
Ида генерит вот такого плана код:
Код
; Processor:        AT89S8252 [RAM=256 ROM=0 EPROM=0 EEPROM=0]
; Processor:        8051
; Target assembler: ASMI

; ═══════════════════════════════════════════════════════════════════════════

; Segment type:    Pure code
    ;.segment code

; ███████████████ S U B    R O U T    I N E ███████████████████████████████████████


    ; public start
start:

; FUNCTION CHUNK AT 14B8 SIZE 00000006 BYTES

        jbc    RAM_26.4, code_A
        mov    R2, A
        dec    @R1
        addc    A, R5
        ljmp    code_AF6
; ───────────────────────────────────────────────────────────────────────────
        .byte     2
; ───────────────────────────────────────────────────────────────────────────

code_A:                ; CODE XREF: startj
        inc    R6
        orl    A, #0
        nop
        nop
        nop
        nop
        ljmp    code_14B8
; ───────────────────────────────────────────────────────────────────────────
        .byte     0
        .byte     0
        .byte     0
        .byte     0
        .byte     0
        .byte     2
        .byte 0x14
        .byte 0xBC; ╝
        .byte     0
        .byte     0
        .byte     0
        .byte     0
        .byte     0
        .byte     2
        .byte 0x14
        .byte 0xC0; └
        .byte     0
        .byte     0
        .byte     0
        .byte     0
        .byte     0
        .byte     2
        .byte 0x14
        .byte 0xC4; ─
        .byte 0xF1; ё
        .byte 0x9E; Ю
        .byte 0x7D; }
        .byte 0xC8; ╚
        .byte 0x5E; ^
        .byte 0xFE; ■
        .byte 0x55; U
        .byte 0x65; e
        .byte     0
        .byte     0
        .byte 0x12
        .byte     1
        .byte 0x10
        .byte     1
        .byte     0
        .byte     0
        .byte     0
        .byte     8
        .byte 0xA4; д
        .byte 0x16
        .byte     1
        .byte     0
        .byte     0
        .byte     1
        .byte     1
        .byte     2
        .byte     3
        .byte     1
        .byte     9
        .byte     2
        .byte     0
        .byte     0
        .byte     1
        .byte     1
        .byte     0
        .byte 0x80; А
        .byte 0x32; 2
        .byte     9
        .byte     4
        .byte     0
        .byte     0
        .byte     1
        .byte     3
        .byte     0
        .byte     0
        .byte     0
        .byte     9
        .byte 0x21; !
        .byte     0
        .byte     1
        .byte     0
        .byte     1
        .byte 0x22; "
        .byte 0x20
        .byte     0
        .byte     7
        .byte     5
        .byte 0x81; Б
        .byte     3
        .byte     8
        .byte     0
        .byte  0xA
        .byte     6
        .byte     0
        .byte 0xFF
        .byte     9
        .byte     1
        .byte 0xA1; б
        .byte     1
        .byte     9
        .byte     2
        .byte 0x26; &
        .byte 0xFF
        .byte     0
        .byte 0x15
        .byte     0
        .byte 0x75; u
        .byte     8
        .byte 0x95; Х
        .byte     8
        .byte 0x81; Б
        .byte     0
        .byte     6
        .byte     0
        .byte 0xFF

Но IAR его понять отказывается, ругается на каждый .byte Прихорашивать вручную неудобно(200 килоьайт ассемблерного кода это не просто так), писать какую-нить конвертилку из формата иды в формат иара пока влом, нет ли чего готового на эту тему?
Палыч
Options -> General -> Analisis -> Target assembler

По умолчанию стоит ASMI. Установите подходящий. IARа там по-моему нет, но можно подобрать тот, который "поближе" к IAR.
AndreyS
Цитата(Shread @ Nov 8 2006, 00:43) *
Нужен дизассемблер, который генерит код удобоваримый для транслятора ассемблера, встроенного в IAR EW MCS-51. Удобный дизассеблер IDA Pro, но тот асменный файл, котоый она генерит скормить IAR'у быстро не получилось.

<= вырезано =>

Но IAR его понять отказывается, ругается на каждый .byte Прихорашивать вручную неудобно(200 килоьайт ассемблерного кода это не просто так), писать какую-нить конвертилку из формата иды в формат иара пока влом, нет ли чего готового на эту тему?



Добрый день.

Давно (лет 10 назад) до IDA пользовался вот этим.
Использовать d51.exe Получите файл с расширением d51. Он легко проглатывается Кейлом. Про ИАР не знаю.
Shread
Цитата(AndreyS @ Nov 8 2006, 19:45) *
Цитата(Shread @ Nov 8 2006, 00:43) *

Нужен дизассемблер, который генерит код удобоваримый для транслятора ассемблера, встроенного в IAR EW MCS-51. Удобный дизассеблер IDA Pro, но тот асменный файл, котоый она генерит скормить IAR'у быстро не получилось.

<= вырезано =>

Но IAR его понять отказывается, ругается на каждый .byte Прихорашивать вручную неудобно(200 килоьайт ассемблерного кода это не просто так), писать какую-нить конвертилку из формата иды в формат иара пока влом, нет ли чего готового на эту тему?



Добрый день.

Давно (лет 10 назад) до IDA пользовался вот этим.
Использовать d51.exe Получите файл с расширением d51. Он легко проглатывается Кейлом. Про ИАР не знаю.


Спасибо, при возможности попробую. Ида очень удобна в плане читаемости кода=)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.