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