$Header: /home/radek/cvs/forth-book/sec-subroutine_threaded_code.xml,v 1.4 2005/10/20 19:19:38 radek Exp $
section id="subroutine-threaded-code" xreflabel="Podprogramy zřetězený kód"
Model zřetězení slov podprogramy, také nazývaný nativně přakládaný kód (Native Code), je založený na tom, že definice slova v slovníku je sama o sobě výkonným kódem. Tedy volání slov je přeloženo na volání podprogramů.
Základní odlišnost od předcházejících modelu spočívá v použití instrukcí skoků místo prostých adres v definici slova.
Výhodou tohoto modelu je větší rychlost vykonávání programu. Toto však není obecně samozřejmé a je nutno pro daný konkrétní procesor porovnat jednotlivé modely. Tento model nerozlišuje mezi slovy nízkoúrovňovými a vysokoúrovňovými.
Obecně model nízkoúrovňového slova v zásobníku vypadá takto:
+----------++--------------------+-----+ | hlavička || Strojový kód slova | RET | | slova || | | +----------++--------------------+-----+
Vysokoúrovňové slovo pak vypadá takto:
+----------++-------+-------+-------+-----+ | hlavička || CALL | CALL | CALL | RET | | slova || word1 | word2 | word3 | | +----------++-------+-------+-------+-----+
Jak je na ukázkách vidět z hlediska organizace není mezi těmito slovy principiálního rozdílu. Obě obsahují přímo vykonavatelný strojový kód.
Tento model se dále vyznačuje
neexistencí vnitřního interpretu NEXT
neexistencí virtuálního IP registru, jeho funkci plně zastává čítač programu (PC
) procesoru
neexistencí virtuálního W registru