BASIC Briefmarke v1.4 - wie auslesen ?

Axel Schwenke <schwenke@jobpilot.de> schrieb im Beitrag <jtgqkb.09f.ln@jobpilot.de>...

Fortgeschrittene Optimierungen wie

Werden einfach so in den Quelltext uebernommen.

Die Abbildung Hochsprache -> Maschinencode ist eben nicht ein-
deutig umkehrbar.

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.

Die einzigen Gründe, warum man so etwas machen wöllte, sind

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.
 
On 24 Sep 2003 09:20:11 GMT, "MaWin" <me@privacy.net> wrote:

Eigentlich ist decompileren spotteinfach:

Beschreibe jeden Maschinenbefehl in der Hochsprache:
LD A,(DE) -> Accu = *DERegister q.e.d.
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
 
Johannes Bauer <dfnsonfsduifb@gmx.de> schrieb im Beitrag <bkt5gv$6jb$07$1@news.t-online.com>...
Also _das_ verstehe ich aber nicht unter einem Decompiler.
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: 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.
 
On 25 Sep 2003 00:27:21 GMT, "MaWin" <me@privacy.net> wrote:

Und warum bitte ziehst du dich daran hoch
und liest nicht einfach weiter im Posting ?
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
 

Welcome to EDABoard.com

Sponsor

Back
Top