Arithmetik#
Table of Contents
Stacknotation#
Im folgenden werden hauptsählich Worte in ihrer Einzelfunktion beschrieben. In dieser Form der Beschreibung, die Sie bereits kennengelernt haben, wird die Wirkung eines Wortes auf den Stack in Klammern angegeben und zwar in folgender Form:
( vorher -- nachher )
vorher - Werte auf dem Stack vor Ausführung des Wortes nachher - Verte auf dem Stack nach Ausführung des Wortes
In dieser Notation wird das oberste Element des Stacks (tos) immer ganz rechts geschrieben. Sofern nicht anders angegeben, beziehen sich alle Stacknotationen auf die spätere Ausführung des Wortes. Bei immediate Worten wird auch die Auswirkung des Wortes auf den Stack während der Kompilierung angegeben. Worte werden ferner durch folgende Symbole gekennzeichnet:
c | Dieses Wort kana nur während der Kompilation einer :-Definition benutzt werden. |
I | Dieses Wort ist ein immediate Wort, das auch im kompilierenden Zustand ausgeführt wird. |
83 | Dieses Wort wird im Forth83-Standard definiert und muß auf allen Standardsystemen äquivalent funktionieren. |
U | Kennzeichnet eine Uservariable. |
Weicht die Aussprache eines Wortes von der natürlichen englischen Aussprache ab, so wird sie in Anführungszeichen angegeben. Gelegentlich folgt auch eine deutsche Übersetzung. Die Namen der Stackparameter folgen, sofern nicht suggestive Bezeichnungen gewählt wurden, dem nachstehendem Schema. Die Bezeichnungen konnen mit einer nachfolgenden Ziffer versehen sein.
Stacknotation | Zahlentyp | Wertebereich in Dezimal | minimale Feldbreite |
---|---|---|---|
flag | logischer Wert | 0=flash, sonst=true | 16bit |
true (tf) | logischer Wert | -1 (als Ergebnis) | 16bit |
false (ff) | logischer Wert | 0 | 16bit |
b | Bit | 0..1 | 1bit |
char | Zeichen | 0..127 (0..255) | 7(8bit) |
8b | 8 beliebige Bits | nicht anwendbar | 8bit |
16b | 16 beliebige Bits | nicht anwendbar | 16bit |
n | Zahl, bewertete Bits | -32768 .. 32767 | 16bit |
+n | positive Zahl | 0 .. 32767 | 16bit |
u | vorzeichenlosen Zahl | 0 .. 65535 | 16bit |
w | Zahl, n oder u | -32768..65535 | 16bit |
addr | Adresse, wie u | 0..65535 | 16bit |
32b | 32 beliebige Bits | nicht anwendbar | 32bit |
d | doppelt genaue Zahl | -2,147,483,648..2,147,483,647 | 32bit |
+d | positive doppelt genaue Zahl | 0..2,147,483,647 | 32bit |
ud | vorzeichenlose, doppelt genaue Zahl | 0..4,294,967,295 | 32bit |
sys | systemabhängige Werte | nicht anwendbar | nicht anwendbar |