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
forth:fgforth:see [2019/03/14 16:13] volkerpforth:fgforth:see [2020/01/07 08:08] (aktuell) volkerp
Zeile 29: Zeile 29:
 | ;ok | ; | | ;ok | ; |
 | (DO) .. (LOOP) | DO .. LOOP | | (DO) .. (LOOP) | DO .. LOOP |
 +| (?LEAVE) | ?LEAVE |
 | ?BRANCH m1 .. m1: | IF .. THEN | | ?BRANCH m1 .. m1: | IF .. THEN |
 | ?BRANCH m1 .. BRANCH m2 m1: ... m2: | IF .. ELSE .. THEN | | ?BRANCH m1 .. BRANCH m2 m1: ... m2: | IF .. ELSE .. THEN |
Zeile 34: Zeile 35:
 | 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. **REASS** ist ein zugehöriger Reassembler.
Zeile 54: Zeile 79:
 ok ok
 </code> </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.1552579980.txt.gz
  • Zuletzt geändert: 2019/03/14 16:13
  • von volkerp