8.1.3. Interpret slov NEST

section id="ff1802.nest" xreflabel="nest", xref.ff1802.nest, link.ff1802.NEST

Přesněji interpret slov definovaných na vyšší úrovni slovem :.

Implementace nest podle modelu nepřímo zřetězeného kódu tento je:

enter:  ip→(-rsp)     ; push ip to rs
        w→ip          ; jump to w
        next            ; předání řízení do smyčky vnitřního interpretu

V této implementaci se interpret slov nenazývá ENTER, ale NEST. Na prvních řádcích je implementována operace push IP to RS, tedy uložení ukazatele instrukcí na vrchol zásobníku návratových adres. To proto, abychom se mohli vrátit ve vykonávání programu zpět a pokračovat další instrukcí. Zde objevujeme další rozdíl, zásobník návratových adres roste v této implementaci směrem k vyšším adresám a nikoliv nišším jako v referenčním modelu.

                                     ; ip→(rsp+)   # push ip to rs
001296 05C2 9A               NEST:   GHI RA          ; IP.hi
001297 05C3 52                       STR R2          ; →(RSP)
001298 05C4 22                       DEC R2          ; RSP+=1
001299 05C5 8A                       GLO RA          ; IP.lo
001300 05C6 52                       STR R2          ; →(RSP)
001301 05C7 22                       DEC R2          ; RSP+=1

V druhé části implementace NEST se adresa z pracovního registru W uloží do ukazatele instrukcí IP, a řízení se předá do smyčky vnitřního interpretu NEXT. Tím se provede efektivně volání slova/podprogramu jehož adresa byla v registru W.

                                     ; w→ip        # jump to w
001302 05C8 9B                       GHI RB          ; W.hi
001303 05C9 BA                       PHI RA          ; →IP.hi
001304 05CA 8B                       GLO RB          ; W.lo
001305 05CB AA                       PLO RA          ; →IP.lo
001306 05CC DC                       SEP RC          ; next

Slovo které se vykonává interpretem NEST je ukončeno adresou SEMIS slova ;S