Buch erstellen
Diese Seite zum Buch hinzufügen
Diese Seite zum Buch hinzufügen
Buch erstellen
Diese Seite aus Buch entfernen
Diese Seite aus Buch entfernen
Decompiler
SEE ist ein kleiner Decompiler nach F83.
Benutzung: SEE name
Er erzeugt ein Listing des Forth-Quellcodes. Bekannte CREATE-Strukturen werden korrekt entschlüsselt (Konstanten, Variablen, Colon-Definitionen etc.).
Beispiel:
: << OVER 0= NOT IF -1 SCROLL THEN ; SEE << : << 3121 OVER 3123 0= 3125 NOT 3127 ?BRANCH 3131 312B (LIT) -1 ( FFFF ) 312F SCROLL 3131 ;ok
Rückübersetzung:
(LIT) entfällt
;ok ;
(DO) .. (LOOP) DO .. LOOP
(?LEAVE) ?LEAVE
?BRANCH m1 .. m1: IF .. THEN
?BRANCH m1 .. BRANCH m2 m1: ... m2: IF .. ELSE .. THEN
m1: .. ?BRANCH m1 BEGIN .. UNTIL
m1: .. ?BRANCH m2 .. BRANCH m1 m2: BEGIN .. WHILE .. REPEAT
m1: .. BRANCH m1 BEGIN .. AGAIN
IF .-- ?BRANCH m1 IF .---- ?BRANCH m1 ... | ... | THEN .-> m1: ELSE | .-- BRANCH m2 .-|-> m1: ... | THEN .-> m2: BEGIN .--> m1: BEGIN .--> m1: ... | ... | UNTIL .-- ?BRANCH m1 AGAIN .-- BRANCH m1 BEGIN .---> m1: ... | WHILE | .-- ?BRANCH m2 ... | | REPEAT .-|-- BRANCH m1 .-> m2:
REASS ist ein zugehöriger Reassembler.
Er bindet sich automatisch in SEE ein. SEE zeigt dann auch Code-Worte an:
1 GET REASS 1 22 THRU SEE COUNT COUNT is 0F70: POP HL 0F71: LD E,(HL) 0F72: LD D,00 0F74: INC HL 0F75: EX DE,HL 0F76: JP 0420 0F79: END ok
Durch Anpassen von (.PFA) kann die Ausgabe Forth-ähnlicher gestaltet werden. Allerdings ist es dann schwierig, Verzweigungen und Schleifen zu erkennen:
DECOMPILER DEFINITIONS : (.PFA) >BODY BEGIN DUP @ ?SPECIAL SPECIAL DUP 0= ?STOP OR UNTIL DROP ; ' (.PFA) IS .PFA