BASIC Briefmarke v1.4 - wie auslesen ?

Axel Schwenke schrieb im Beitrag ...

Werden einfach so in den Quelltext uebernommen.

Ist ja auch unnoetig. Gut ist es, wenn erneutes Kompileren exakt dieselbe Bytesequenz ergibt, dann muss der Decompiler aber auch die zu verwendende Compilerversion und Optionseinstellungen nennen (macht z.B. HelpDeco)

Ausreichend ist es meist, wenn das Programm noch dasselbe tut :-)

Eigentlich ist decompileren spotteinfach:

Beschreibe jeden Maschinenbefehl in der Hochsprache: LD A,(DE) -> Accu = *DERegister q.e.d.

Natuerlich wuenscht man es sich besser (verstaendlicherer Code), aber beim Erraten der urspruenglichen Kommentare muss der Decompiler spaetestens passen.

Also liegt der erzielbare Zustand irgendwo dazwischen, bei dem was der Decompiler-Schreiber als lesbarer Hochsprache angesehen hat. (o.k, ich kenne noch nicht mal ordentliche Pretty-Printer).

Ein Decompiler ohne Daten- und Programmflussanalysegraph ist sicher untauglich.

Siehe HelpDeco.

--
Manfred Winterhoff, reply-to invalid, use mawin at despammed.com
homepage: http://www.geocities.com/mwinterhoff/
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Read 'Art of Electronics' Horowitz/Hill before you ask.
Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.
Reply to
MaWin
Loading thread data ...

Also _das_ verstehe ich aber nicht unter einem Decompiler. Ist es wohl schon im technischen Sinn, aber ist auch nicht aussagekräftiger und einfacher zu lesen als Mnemonics, widerspricht also IMHO dem eigentlich Sinn eines Decompilers. Dann kann ich gleich einen Disassembler nehmen. Der benennt die Sprungmarken dann auch noch schön (also "goto SchoeneSprungmarke_Jfduid" statt "jmp 404993").

Ausserdem erzeugt ein Code, wie du ihn gezeigt hast, ein _weitaus_ komplexeres Programm, wenn man es rekompiliert. Weil der Compiler natürlich "dumm" ist, und "Accu" nicht direkt als Register, sondern im Memory implementieren wird.

Das halte ich deswegen für ein ziemlich simples Workaround. Ein _echter_ Dekompiler sollte schon versuchen, die Algorithmen nicht ganz im Nirvana verschwinden zu lassen.

MfG Johannes

Reply to
Johannes Bauer

Johannes Bauer schrieb im Beitrag ...

Und warum bitte ziehst du dich daran hoch und liest nicht einfach weiter im Posting ?

-- Manfred Winterhoff, reply-to invalid, use mawin at despammed.com homepage:

formatting link
de.sci.electronics FAQ:
formatting link
Read 'Art of Electronics' Horowitz/Hill before you ask. Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.

Reply to
MaWin

Weil du die Translation "LD A,(DE) -> Accu = *DERegister" als "Decompilieren" bezeichnest, obwohl es wohl eher ein diletantisches disassemblieren ist. Die Bezeichnung decompilieren _impliziert_, dass der Code in eine höhere Sprache übersetzt wird, nicht einfach das primitivste umformuliert.

MfG Johannes

Reply to
Johannes Bauer

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.