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 [2025/07/21 08:44] (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.
  
-Er bindest sich in SEE ein. SEE zeigt dann auch Code-Worte an:+Er bindet sich automatisch in SEE ein. SEE zeigt dann auch Code-Worte an:
  
 <code> <code>
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