Share via


.ALLOCSTACK

プロローグ内の現在のオフセットに指定されたサイズを使用して、UWOP_ALLOC_SMALL または UWOP_ALLOC_LARGE を生成します。

構文

.ALLOCSTACKsize

解説

MASM によって、指定したサイズに最も効率的なエンコードが選択されます。

.ALLOCSTACK は、フレーム関数をアンワインドする方法を ml64.exe ユーザーが指定できるようにします。これは、PROC FRAME 宣言から .ENDPROLOG ディレクティブまでのプロローグ内でのみ許可されています。 これらのディレクティブは、コードを生成するのではなく、.xdata.pdata のみを生成します。 .ALLOCSTACK は、アンワインドされるアクションを実際に実装する命令の後に指定する必要があります。 アンワインド ディレクティブと、これを使用してマクロでアンワインドすることが意図されているコードの両方をラップして、一致させるようにすることをお勧めします。

size オペランドは 8 の倍数にする必要があります。

詳細については、「x64 用 MASM (ml64.exe)」を参照してください。

サンプル

次の例は、アンワインドおよび例外ハンドラーを指定する方法を示しています。

; 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

関連項目

ディレクティブ リファレンス
MASM BNF 文法