Přidáno 3 803 bajtů,
12. 10. 2012, 13:22 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 [[Symboly předdefinovaných typů|symbolů předdefinovaných typů]].
{| class="wikitable"
! align="left"| Symbol !! align="left"| Hodnota !! align="left"| Třída !! align="left"| 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í integrovaného assembleru|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.
:Hodnota symbolu lokální proměnné představuje ofset od [[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 (xxx.yyy)|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;
[[Category:assembler]]