Программы для «Специалиста»

Обсуждение советского компьютера Фахiвець / Специалист и его развитие

Moderator: Lavr

User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Программы для «Специалиста»

Post by Lavr »

Lavr wrote: А вот DB8085 disassembler, что я брал вот здесь: Dick's Web Page (W3SYY),
меня немного подвёл. Он неверно декомпилирует инструкцию CNZ (код 0С4Н).
:osad:
Я хотел ещё тогда написать автору, но увидел, что автор приложил исходники, и вполне можно разобраться самому.
Но руки как-то не дотянулись... :-?

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

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

В итоге сразу получается текст примерно вот такой красивости:

Code: Select all

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, что и даёт сбой.
Не критично - но неприятно... :(

В общем, я один байт подправил в исходнике и в ЕХЕ-шнике, и всё вроде как заработало правильно:
DIZ8080.zip
You do not have the required permissions to view the files attached to this post.
iLavr