forum speccy.pl

ZX Spectrum => SOFTWARE => Wątek zaczęty przez: Tygrys w 2018.01.10, 16:42:26

Tytuł: Diassemblery Z80....
Wiadomość wysłana przez: Tygrys w 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ć?
Tytuł: Odp: Diassemblery Z80....
Wiadomość wysłana przez: SAJ w 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.
Tytuł: Odp: Diassemblery Z80....
Wiadomość wysłana przez: steev w 2018.01.10, 17:09:45
mdz80 (https://www.z80cpu.eu/78-data-articles/projects/76-mzt)
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
Tytuł: Odp: Diassemblery Z80....
Wiadomość wysłana przez: KWF w 2018.01.10, 17:15:16
A dla ogryzkowych i majacych alergie na Wine'o: http://k1.spdns.de/Develop/Projects/zxsp-osx/Distributions/
Tytuł: Odp: Diassemblery Z80....
Wiadomość wysłana przez: steev w 2018.01.10, 17:23:25
Tegoż autora polecam ZASM (https://k1.spdns.de/Develop/Projects/zasm-4.0/) - jeden z moich ulubionych assemblerów.
Tytuł: Odp: Diassemblery Z80....
Wiadomość wysłana przez: Gryzor w 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.
Tytuł: Odp: Diassemblery Z80....
Wiadomość wysłana przez: Tygrys w 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.
Tytuł: Odp: Diassemblery Z80....
Wiadomość wysłana przez: matofesi w 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 :)
Tytuł: Odp: Diassemblery Z80....
Wiadomość wysłana przez: tooloud w 2018.01.11, 10:18:44
http://tooloudtoowide.marcinrusinowski.com/wp-content/uploads/2017/04/z80-mac-ide.jpg (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".
Tytuł: Odp: Diassemblery Z80....
Wiadomość wysłana przez: steev w 2018.01.11, 15:31:41
Ciekawie też wygląda debugger z xpeccy.
Muszę się z nim chyba bardziej zaprzyjaźnić :)
Tytuł: Odp: Diassemblery Z80....
Wiadomość wysłana przez: Tygrys w 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.
Tytuł: Odp: Diassemblery Z80....
Wiadomość wysłana przez: SAJ w 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.
Tytuł: Odp: Diassemblery Z80....
Wiadomość wysłana przez: matofesi w 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ć :)