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.
