Autor Wątek: Diassemblery Z80....  (Przeczytany 6067 razy)

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Diassemblery Z80....
« dnia: 2018.01.10, 16:42:26 »
Ostatnio korzystam z yazd -> https://github.com/toptensoftware/yazd/tree/master/yazd
Powstał jako 'port' z80ex -> https://sourceforge.net/projects/z80ex/ - ten z kolei jest napisany w czystym C.

Jak dla mnie spełnia swoje zadanie, choć nie jest uniwersalny - napisany w C# więc kompilacja jest pod windows lub linuxa (o ile ktoś uznaje mono).

Główną zaletą dla mnie jest to, że potrafi odróżnić kod asm od danych i odpowiednio to zdekompilować.


Czy ktoś używa innych disassemblerów, najlepiej darmowych, i może polecić?

SAJ

  • *****
  • Wiadomości: 1484
  • Miejsce pobytu:
    Terra Prime
Odp: Diassemblery Z80....
« Odpowiedź #1 dnia: 2018.01.10, 17:02:39 »
Kiedy robilem podejscie do Disassemblera to byl mix miedzy IDA a Z80 Simulator IDE.

IDA to chyba wersja 4.1 dlatego ze to ostatnia darmowa wersja z supportem dla Z80.
Z80 IDE to czesc tego zestawu:

http://www.oshonsoft.com/z80.html


Pozdro.

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Diassemblery Z80....
« Odpowiedź #2 dnia: 2018.01.10, 17:09:45 »
mdz80
Działa z linii poleceń, stara się odgadnąć gdzie jest kod a gdzie dane, jeśli się pomyli to można ręcznie zmodyfikować mapę obszarów.
Wyjście jest w pewnym stopniu konfigurowalne i dość przyjazne.
;
;  MDZ80 V0.9.0 Z80 Disassembly of MEM.dat
;  2017/03/31 15:56
;
        ORG     $2156
;
        JP      X21A6           ; 2156  C3 A6 21        C&!
;
        LD      A,(HL)          ; 2159  7E              ~
        CP      $46             ; 215A  FE 46           ~F
        JR      Z,X2163         ; 215C  28 05           (.
        CP      $66             ; 215E  FE 66           ~f
        JP      NZ,X0082        ; 2160  C2 82 00        B..
X2163:  LD      A,$20           ; 2163  3E 20           >
        LD      (HL),A          ; 2165  77              w
        DEC     HL              ; 2166  2B              +
        LD      (HL),A          ; 2167  77              w
Machines should work. People should think.

KWF

  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: Diassemblery Z80....
« Odpowiedź #3 dnia: 2018.01.10, 17:15:16 »
A dla ogryzkowych i majacych alergie na Wine'o: http://k1.spdns.de/Develop/Projects/zxsp-osx/Distributions/
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Diassemblery Z80....
« Odpowiedź #4 dnia: 2018.01.10, 17:23:25 »
Tegoż autora polecam ZASM - jeden z moich ulubionych assemblerów.
Machines should work. People should think.

Gryzor

  • *****
  • Wiadomości: 2009
  • Miejsce pobytu:
    Warszawa
Odp: Diassemblery Z80....
« Odpowiedź #5 dnia: 2018.01.10, 20:54:51 »
Kiedys uzywalem tego:
http://www.inkland.org.uk/dz80/

W LUA mozna dopisac swoje rozszerzania.

Jest jeszcze Skoolkit:
https://github.com/skoolkid/skoolkit

Wspiera pasmo i sjasm.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Diassemblery Z80....
« Odpowiedź #6 dnia: 2018.01.11, 09:28:05 »
Dzięki za linki, jak widać możliwości jest wiele!

Wiem że niektóre emulatory miały możliwość zgrania listingu programu do pliku tekstowego, zwłaszcza jeden, który potrafił wygenerować w locie listing wykonywanego programu. To jest mega pomocne przy profilowaniu /  optymalizacji.

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Diassemblery Z80....
« Odpowiedź #7 dnia: 2018.01.11, 09:53:18 »
A ja kiedyś używałem perlowego disassemblera z dorobionym do niego "czyścikiem", który wywalał nadmiarowe informacje. Potem coś mi się tam zaczęło kaszanić a że w międzyczasie zacząłem się uczyć nowego języka (Dart - https://www.dartlang.org/) to stwierdziłem, że zrobię sobie disassembler "pod siebie" ;)

Skrypt wymaga zainstalowanego w systemie Darta (pod Windowsem prawdopodobnie trzeba też dodać rozszerzenie do skryptu). Bierze na wlocie kawałek binarki, nazwę pliku wynikowego i adres od jakiego ta binarka się zaczyna. Dodatkowo jako pierwszy parametr można podać -r, co wygeneruje disassemblację w trybie "debuggera" - adres, kody i instrukcja bez analizy etykiet itp. W normalnym trybie wychodzi plik z etykietami zgodny z PASMO  a kody są przeniesione do komentarza za instrukcją. Skrypt nie jest jakoś bardzo inteligentny (ani bardzo ładny w środku ;)), ale do moich potrzeb jest wystarczający a i może komu innemu się przyda :)

tooloud

  • *****
  • Wiadomości: 3185
  • Miejsce pobytu:
    Warszawa
  • mydłem go!
Odp: Diassemblery Z80....
« Odpowiedź #8 dnia: 2018.01.11, 10:18:44 »
http://tooloudtoowide.marcinrusinowski.com/wp-content/uploads/2017/04/z80-mac-ide.jpg

ZXSP startowo bardzo fajny, niestety nie jestem jakimś wyjadaczem assemblerowym, żeby stwierdzić jak to się ma w kategoriach "pro".
dużo sprzętu mało czasu.

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Diassemblery Z80....
« Odpowiedź #9 dnia: 2018.01.11, 15:31:41 »
Ciekawie też wygląda debugger z xpeccy.
Muszę się z nim chyba bardziej zaprzyjaźnić :)
Machines should work. People should think.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Diassemblery Z80....
« Odpowiedź #10 dnia: 2018.01.12, 10:23:16 »
Dzięki mat za podzielenie się disassemblerem! Fajnie to wygląda 'w środku'. Jeszcze tego nie odpalałem, ale postaram się poużywać i podzielić się spostrzeżeniami a może i 'request featurami' jeżeli je przyjmujesz.

SAJ

  • *****
  • Wiadomości: 1484
  • Miejsce pobytu:
    Terra Prime
Odp: Diassemblery Z80....
« Odpowiedź #11 dnia: 2018.01.12, 10:33:02 »
Hejka,

Dla mnie przy probach deasemblacji najwiekszym problemem zawsze relatywne skoki na bazie tego co aktualnie siedzi w pamieci.
Sama zamiana wartosci na komendy chyba nie do konca da sie odtworzyc co autor mial w zamiarach.

Pozdrawiam.

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Diassemblery Z80....
« Odpowiedź #12 dnia: 2018.01.12, 12:08:48 »
@Tygrys Skrypt pisałem dla siebie więc istnieje prawdopodobieństwo, że nie robi rzeczy, które nie były mi potrzebne ;) Ale jak ci się nie chce uczyć Darta to pewnie - pisz jakie masz uwagi - zobaczymy co się da z nimi zrobić :)