ENTER - vytvor prostor v zásobníku pro parametry procedúry

Z Delphi & Pascal (česká wiki)
Skočit na navigaci Skočit na vyhledávání
Instrukce
ENTER - vytvor prostor v zásobníku pro parametry procedúry
Časování
11-16 (80286), 10-19 (80386)
Popis
Instrukce ENTER se používá pro vytvoření prototypu struktúry uchovávajíci parametry, jejiž použití je typické pro většinu vyšších programovacích jazyku. První operand specifikuje velikost požadované alokované dynamické paměti, již je treba vymezit pro parametry v zásobníku při vstupu do procedúry. Druhý operand udáva úroveň vnoření podprogramu vzhledem k zdrojovému programu ve vyšším programovacím jazyce. Instrukce ENTER určuje, jaké množství ukazatelů (ze staré struktury pro volání) je treba kopírovat do nové struktury. BP(EBP) je použit jako aktuální ukazatel do struktúry. Je-li druhý operand roven 0, ENTER ukládá BP (EBP), nastavuje BP (EBP) na hodnotu SP (ESP) a odečítá první operand od SP (ESP).


Syntaxe
ENTER immediate_word, immediate_byte


Ovlivňuje příznaky
žádné


Nedefinované příznaky
žádné


Výjimky v privilegovaném módu
Pokud registr SP odkazuje na adresu mimo limit zásobníku, je generována výjimka "chyba zásobníku", a to v libovolné fázi vykonávaní instrukce ENTER.


Poznámka pro 80386
Jsou použity 32-bitové registry EBD a ESP. Velikost struktúry je zvětšená ze 16 na 32 bitů.