Symboly ve výrazech
Integrovaný assembler poskytuje přístup k téměř všem Pascalským symbolům ve výrazu assembleru, včetně návěští, konstant, typů, proměnných, procedur a funkcí. Integrovaný assembler také obsahuje několik symbolů předdefinovaných typů.
Symbol | Hodnota | Třída | Typ |
---|---|---|---|
návěští | Adresa návěští | Paměťový SHORT (krátký) | |
Konstanta | Hodnota konstanty | Přímý | 0 |
Typ | 0 | Paměťový | Velikost typu |
Položka | Ofset položky | Paměťový | Velikost typu |
Proměnné | Adresa proměnné | Paměťový | Velikost typu |
Procedura | Adresa procedury | Paměťový | NEAR nebo FAR |
Funkce | Adresa funkce | Paměťový | NEAR nebo FAR |
Jednotka | 0 | Přímý | 0 |
@Code | Adresa programového segmentu | Paměťový | 0FFF0H |
@Data | Adresa datového segmentu | Paměťový | 0FFF0H |
@Result | Ofset návratové | Paměťový | Velikost typu |
- Symboly, které NEMOHOU být použity ve výrazech
- Standardní procedury a funkce (např. Writeln, Chr).
- Speciální pole Port a PortW.
- Řetězce, reálná čísla a množinové konstanty.
- Procedury a funkce deklarované s direktivou inline.
- návěští, která nejsou deklarována v aktuálním bloku.
- Symbol @Result vně funkci.
- Lokální proměnné
- Lokální proměnné (proměnné deklarované ve funkcích a procedurách) jsou vždy alokovány na zásobníku a zpřístupněny relativně k SS:BP.
- Integrovaný assembler k odkazu na lokální proměnnou automaticky přidává BP.
- Parametry volané odkazem
- Assembler vždy zpracuje parametr volaný odkazem jako 32 bitový ukazatel, a velikost parametru je vždy 4 (velikost 32 bitového ukazatele).
- Pro přístup k obsahu parametru nejdříve musíte získat hodnotu tohoto ukazatele a pak se jím odkazovat.
- Oblast viditelnosti
- Oblast viditelnosti poskytují symboly typu, položky a proměnné typu záznamu nebo typu objektu.
- Navíc identifikátor jednotky otevírá oblast viditelnosti pro jednotku, podobně jako plně kvalifikovaný identifikátor v Pascalu.
- Operátor
- Některé symboly, jako např. typy záznamu a proměnné typu záznam, vyžadují při přístupu použití kvalifikátoru s operátorem selektor člena struktury (.).
- Identifikátor typu
- Každá z následujících instrukcí generuje stejný strojový kód, který do registru AX přesune obsah ES:[ DI+4]:
asm MOV AX,(Rect PTR ES:[DI]).B.X MOV AX,Rect(ES:[DI]).B.X MOV AX,ES:Rect[DI].B.X MOV AX,Rect[ES:DI].B.X MOV AX,ES:[DI].Rect.B.X end;