ZX Spectrum emulator
Hlavní okno
Jak vložit program
Nástroje
Tape editor
Assembler editor
Assembler editor menu
Struktura projektu
Datové typy
Direktívy kompileru
Návěstí a NameSpace
Makra
Jak založit nový ASM projekt
Importování obrázků a spritů
Knihovny kompileru
Knihovna - komprimace dat
Hardware - DMA
Hardware - Rozšíření paměti
Hardware - ULA Plus
Hardware - Kempston Mouse
Hardware - HGFX engine
Hardware - LnxBlitter
Debugger
Debugger okno
Breakpoints
Z80 Assembler, examples
LnxTracker hudba
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
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.