.ALLOCSTACK
Vygeneruje UWOP_ALLOC_SMALL nebo UWOP_ALLOC_LARGE se zadanou velikostí aktuálního posunu v prologu.
Syntaxe
. ALLOCSTACK size
Poznámky
MASM zvolí nejúčinnější kódování pro danou velikost.
. ALLOCSTACK umožňuje ml64.exe uživatelům určit, jak se funkce rámce odvíje a je povolena pouze v rámci prologue, která se vztahuje z deklarace PROC FRAME na . ENDPROLOG – direktiva. Tyto direktivy negenerují kód; pouze generují .xdata
a .pdata
. . ALLOCSTACK by měly předcházet instrukce, které ve skutečnosti implementují akce, které mají být unwound. Je vhodné zabalit direktivy unwind i kód, který mají v makru uvolnit, aby se zajistila smlouva.
Operand velikosti musí být násobkem 8.
Další informace najdete v masm pro platformu x64 (ml64.exe).
Vzorek
Následující ukázka ukazuje, jak určit obslužnou rutinu unwind/exception:
; ml64 ex3.asm /link /entry:Example1 /SUBSYSTEM:Console
text SEGMENT
PUBLIC Example3
PUBLIC Example3_UW
Example3_UW PROC NEAR
; exception/unwind handler body
ret 0
Example3_UW ENDP
Example3 PROC FRAME : Example3_UW
sub rsp, 16
.allocstack 16
.endprolog
; function body
add rsp, 16
ret 0
Example3 ENDP
text ENDS
END