nedoPC.org

Community for electronics hobbyists, established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 12 Dec 2024 04:01



Reply to topic  [ 46 posts ]  Go to page Previous  1, 2, 3, 4
Программы для «Специалиста» 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
А вот DB8085 disassembler, что я брал вот здесь: Dick's Web Page (W3SYY),
меня немного подвёл. Он неверно декомпилирует инструкцию CNZ (код 0С4Н).
:osad:

Я хотел ещё тогда написать автору, но увидел, что автор приложил исходники, и вполне можно разобраться самому.
Но руки как-то не дотянулись... :-?

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

Жаль только форматирует он текст ассемблера табуляцией - это не во всех редакторах одинаково
хорошо выглядит... (На удивление хорошо в MS Word выглядит, и там многие косяки легко поправить! :wink: )

В итоге сразу получается текст примерно вот такой красивости:
Code:
LF95A:
     LXI  H,L0000    ;F95A  21 00 00
LF95D:
     LDAX D          ;F95D  1A
     INX  D          ;F95E  13
     CPI  0DH        ;F95F  FE 0D
     JZ   LF98E      ;F961  CA 8E F9
     CPI  2CH        ;F964  FE 2C
     RZ              ;F966  C8
     CPI  20H        ;F967  FE 20
     JZ   LF95D      ;F969  CA 5D F9
     SUI  30H        ;F96C  D6 30
     JM   LFAAE      ;F96E  FA AE FA
     CPI  0AH        ;F971  FE 0A
     JM   LF982      ;F973  FA 82 F9
     CPI  11H        ;F976  FE 11
     JM   LFAAE      ;F978  FA AE FA
     CPI  17H        ;F97B  FE 17
     JP   LFAAE      ;F97D  F2 AE FA
     SUI  07H        ;F980  D6 07

А тут мне снова понадобилось кое-что декомпилировать для 580ВМ80, и я вспомнил про этот дизассемблер...
Всё оказалось довольно просто: инструкцию CNZ (код 0С4Н) он распознаёт, но в таблице размера
инструкций автор ошибочно проставил, что CNZ - инструкция однобайтная, типа RNZ, что и даёт сбой.
Не критично - но неприятно... :(

В общем, я один байт подправил в исходнике и в ЕХЕ-шнике, и всё вроде как заработало правильно:
Attachment:
DIZ8080.zip [11.87 KiB]
Downloaded 288 times

_________________
iLavr


18 Feb 2021 07:34
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 46 posts ]  Go to page Previous  1, 2, 3, 4

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.