A FORTH-ban az egyes adatok típusa a
felhasználásuktól függ
.
Pl. Írjuk be a
következő sort
65535 .
Ekkor azonban nem a 65535 értéketket látjuk viszont a
képernyőnn fordítás;s és futtatás után, hanem a -1 -et. Ez azért van, mart a "."
szó előjelesnek tekinti a vermen lévő számot. Ha azonban ezt írjuk :
65535 U.
akkor már jól kapjuk vissza az értékeket a képernyőn. Az U jelentése Unsigned,
azaz előjel nélküli, ekkor a kiiratáskor a FORTH a vermen lé;vő számot nem
tekinti előjelesnek.
Ha egy szám nem fér el egy szóban(16-biten) akkor egy duplaszóban tároljuk(32 bit). A duplaszónak mindig a magasabb helyiértékű része van felül a vermen.
Duplaszó kiiratása pl:
-1 0 D.
Képernyőn : 65535
A D. - vel a verem tetején lévő két szót duplaszóként
értelmezhetjük.
U* (u1
u2 ---- ud) összeszorozza a vermen lévő két előjel nélküli értékeket,
az eredmény egy duplaszó
U/ (ud u1 ---- u2 u3) Duplaszót oszt
egyszavas értékekkel, u2 - maradék, u3 - eredmény
U<( u1 u2 ---- f) Előjel
nélküli értékek összehasonlításasa
D+ (d1 d2 ---- d) Duplaszavak összegét adja
duplaszóban
DABS (d ---- d) Duplaszó abszolút értékét adja
DMINUS (d
---- -d) Duplaszót negál
M* (n1 n2 ---- d) Szavas értékeket szoroz,
duplaszavas értéket ad
M/ (d n1 - n2 n3) Duplaszavas értéket oszt szavassal,
n2 : maradék n3 : eredmény
SPACE - Egy szóközt ír a képernyőre
CR - Egy
ENTER-t ír ki
"szöveg" - Kiirja a "szoveg-et"
: VECTOR ( n ---- )
DOES>
SWAP
1-
2* +
;
Ezzel így definiálunk például
egy 10-elemű vektort:
10 VECTOR TIZ - A TIZ szó veremhatása: (index ---- elemcím).