Otevřít hlavní menu

Změny

LEAVE - výstup z procedúry

Přidáno 1 356 bajtů, 7. 12. 2012, 17:19
Vytvorená stránka „;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...“
;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]]