Přidáno 1 356 bajtů,
7. 12. 2012, 17:19 ;Instrukce
: LEAVE - výstup z procedúry (na vyšší úrovni)
;Časování
: 5 (80286), 4 (80386)
;Popis
: Instrukce LEAVE provádí operaci duální k instrukci [[ENTER]]. LEAVE uvolní všechny lokální promenné a nastaví [[BP]] na hodnotu [[SP]], navrací registrům hodnoty bezprostrědne po vykonání procedúry. Když je [[BP]] ([[EBP]]) kopírován do [[SP]] ([[ESP]]), je prostor v zásobníku použitý pro procedúru uvolnen. Starý ukazatel struktúry (viz instrukci [[ENTER]]) je nyní vyzvednut ze zásobníku a uložen do [[BP]] ([[EBP]]). To obnoví strukturu volajíciho podprogramu a nasleduje instrukce [[RET]] nn odstraňujíci všechny argumenty uložené do zásobníku pro potreby procedúry, která právě končí.
;Syntaxe
: LEAVE (žádné operandy)
;Ovlivňuje příznaky
: žádné
;Nedefinované příznaky
: žádné
;Výjimky v privilegovaném módu
: Neukazuje-li [[BP]] ([[EBP]]) na paměťové místo uvnitr aktuálního zásobníkového segmentu, je generována výjimka [[chyba zásobníku]].
;Výjimky v reálnem módu
: Je-li operand na offsetu 0FFFFH, je generováno přerušení [[INT 13]].
;Poznámka pro 80386
: Šírka slova je 32 bitů. Jsou použity registry [[ESP]] a [[EBP]].
;Příklad:
LEAVE
[[Category:Assembler]]
[[Category:Instrukce mikroprocesoru 80386]]