Používání Návěstí a NameSpaces
Kompiler umožňuje používat řády v Návěstích, jako NameSpace. Řády jsou podobně jako u WWW adres oddělené tečkami. Hlavní Návěstí, které určuje NameSpace nezačíná tečkou, a před použitím návěstí druhého řádu (návěstí začínající tečkou) musí být definováno. Příklad:
org 32768 Start di ld hl,0 .loop ld de,16384 ld bc,6912 ldir jr .loop
V následujícím obrázku vidíme, jaké nám kompiler vytvořil návěstí. Hlavní je návěstí prvního řádu
Start
, které zároveň definuje NameSpace. Takže každé návěstí druhého řádu (to bude začínat tečkou) bude vždy na začátku obsahovat Start
. Když v našem případě napíšeme…
jr .loop
nebo
jr Start.loop
…bude se jednat o stejné návěstí. První ale bude fungovat jen v případě že se nacházejí ve stejném NameSpace. Návěstí i s NameSpacem, tedy Start.loop musíme použít pokuď ho chceme volat z jiného NameSpace:
org 32768 Start di ld hl,0 .loop call Posuv.run ;Instrukce call se nachází jr .loop ;v NameSpace "Start" Posuv ;ale ".run" je v NameSpace "Posuv". .run ld de,16384 ld bc,6912 ldir ret
Největší výhodou návěstí o více řádech je v tom, že jeho název můžeme použít znovu v novém NameSpace. V následujícím příkladu máme dvě návěstí .loop
, ale pokaždé se jedná o úplně jiné návěstí / jinou adresu:
org 32768 Label1 .loop nop jr .loop Label2 .loop nop jr .loop
Víceřádové návěstí
Je možné používat i více než jeden řád. Díky tomu se dají napsat celé knihovny funkcí.
org 32768 call Grafika.cls call Grafika ret Grafika.cls nop ;návěstí prvního a druhého řádu .loop nop ;návěstí třetího řádu djnz .loop ret Grafika.line nop ;návěstí prvního a druhého řádu .loop nop ;návěstí třetího řádu djnz .loop ret Grafika call .line ;Volá Grafika.line ret
Všimněte si na konci programu návěstí prvního řádu Grafika
, která nepokračuje návěstím druhého řádu, ale protože se shoduje s předchozím návěstím prvního řádu, nemusí ho v call .line
uvádět.