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ó.
   16   17   18   19   20   21   22   23   24