Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
forth:fgforth:see [2018/02/13 16:02] volkerpforth:fgforth:see [2020/01/06 14:18] volkerp
Zeile 34: Zeile 34:
 | m1: .. ?BRANCH m2 .. BRANCH m1 m2: | BEGIN .. WHILE .. REPEAT | | m1: .. ?BRANCH m2 .. BRANCH m1 m2: | BEGIN .. WHILE .. REPEAT |
 | m1: .. BRANCH m1 | BEGIN .. AGAIN | | m1: .. BRANCH m1 | BEGIN .. AGAIN |
 +
 +<code>
 +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:
 +</code>
 +
 +
 +
 +**REASS** ist ein zugehöriger Reassembler.
 +
 +Er bindest sich in SEE ein. SEE zeigt dann auch Code-Worte an:
 +
 +<code>
 +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
 +</code>
 +
 +
 +Durch Anpassen von (.PFA) kann die Ausgabe Forth-ähnlicher gestaltet werden. Allerdings ist es dann schwierig, Verzweigungen und Schleifen zu erkennen:
 +
 +<code>
 +DECOMPILER DEFINITIONS
 +: (.PFA)   >BODY   BEGIN  
 +      DUP @ ?SPECIAL SPECIAL DUP
 +      0= ?STOP OR UNTIL   DROP ;
 +' (.PFA) IS .PFA
 +</code>
  
  • forth/fgforth/see.txt
  • Zuletzt geändert: 2020/01/07 08:08
  • von volkerp