Page 21 - Enterpress Magazin - 2021. 4-6.
P. 21
2021. július – december 21. oldal
azokat a számokat, amelyekben tizedespont van, az DU< ( u1 u2 - - - - f ) Előjel nélküli dupla pontosságú
interpreter duplaszóba konvertálja. értékek összehasonlítása. f igaz,
ha u1<u2
Például: D. ( d - - - - ) Kiírja a vermen talált duplaszót,
utána szóközt.
100. D. = 100 D.R ( d n - - - - ) Kiírja a vermen talált duplaszót,
10.0 D. = 100 egy n szélességű mezőben.
10. D. = 10 D+ ( d1 d2 - - - - d ) Duplaszavak (duplaszavas)
összegét adja.
Látjuk, hogy a veremre tett duplaszó értékét a tizedespont D- ( d1 d2 - - - - d ) Duplaszavak (duplaszavas)
helye nem befolyásolja. különbségét adja.
A duplaszavak éppúgy lehetnek előjelesek vagy előjel nél- D* ( d1 d2 - - - - d) Duplaszavak (duplaszavas)
küliek, mint a szavak. Az előjel nélküli duplaszó jelölése a szorzatát adja.
veremhatás leírásánál: ud. A veremhatás leírásában a d, ud D2/ (d1 - - - - d) A 2/ operátor duplaszavas
jelölés duplaszót, azaz két elemet jelent. változata, azaz a 32 bites számot
megfelezi.
Egy álcázott duplaszavas művelet DABS ( d - - - - +d ) Duplaszó abszolút értékét adja.
Szorzást és osztást kombinál a következő szó DMAX ( d1 d2 - - - - max ) A két duplaszó közül a
nagyobbat teszi a veremre.
/* ( n1 n2 n3 - - - - n4 ), DMIN ( d1 d2 - - - - min ) A két duplaszó közül a kisebbet
teszi a veremre.
ahol n4 = (n1 * n2) / n3. Az n1*n2 szorzatot a */ duplaszó- DNEGATE ( d - - - - -d) Duplaszót negál
ban tárolja, így nem fordulhat elő, hogy a szorzás túlcsor-
dulást eredményezzen. Ugyanezt teszi a Jelölések:
*/MOD ( n1 n2 n3 - - - - maradék hányados ) n - előjeles érték
u - előjel nélküli egyszavas érték (unsigned number)
szó is, csak megkapjuk az osztás hányadosát is. Pl.: d - Előjeles duplaszavas érték (doubleword)
ud - Előjel nélküli duplaszavas érték (unsigned doub-
2 5 3 */MOD . . leword)
Az eredmény 3 és 1 lesz. A kettő és az öt összeszorzódik, E két utóbbi a vermen két elemet jelöl.
és 10 keletkezik mint részeredmény (duplapontosságú
formában tárolva). Ezután a 10 elosztódik 3-mal és a ma- 3.3. Ismerkedés a memóriával
radék bekerül a verembe (1). Ezután a hányados kerül a
verembe, ami a legfelső elem lesz. Byte-os műveletek
Az
A számítógép memóriája számozott és számukkal címez-
UM* hető byte-ok sorozata. A FORTH memóriakezelő szavai
ezeket a byte-okat szabadon olvashatóvá és felülírhatóvá
két 16 bites szám előjeltelen szorzását jelenti, az ered- teszik, függetlenül attól, hogy az interpreter kódjának kö-
mény pedig egy 32 bites előjeltelen szám. Pl.: zepén, a veremben vagy pedig valami „szelídebb” helyen
vannak. A programozó dolga, hogy ne nyúlkáljon rossz
1200 2000 UM* D. helyekre. Egy jó cím a nyúlkálásra, ahol átmenetileg ada-
tot tárolhatunk: az ún. pad (ejtsd ped), ez egy 255 byte
Az eredmény 2400000. méretű tárolóterület, amely különösen jól használható pl.
Az szövegek kezelésére. A pad szó jegyzettömböt, blokkot
jelent. A pad címét a
UM/MOD
PAD ( - - - - cím )
eloszt egy 32 bites számot egy 16 bites számmal és a
maradékot a veremben hagyja, a legfelső elem pedig a szó szolgáltatja.
hányados lesz. Pl.: Vigyázat! A pad a szótárterület fölött van, mégpedig ál-
landó távolságra a szótár tetejétől (az utoljára definiált
1234567. 666 UM/MOD . . szó utáni byte-tól). Ezért mikor új szavakat definiálunk
vagy felejtjük a régieket, a pad helye változik. Legjobb,
Az eredmény 1853 és 469 lesz. ha a pad-be tett adatokat még ugyanabban a szóban fel-
használjuk, amelyikben odatettük őket. Tartós adatmeg-
Az előjel nélküli, a duplaszavas és az előjel nélküli dupla- őrzésre a változók szolgálnak, amelyekről a későbbiek-
szavas értékeket kezelő szavak: ben lesz szó.