次の方法で共有


.ALLOCSTACK

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

.ALLOCSTACK size

解説

MASM が、指定サイズに対して最も効率的なエンコーディングを選択します。

.ALLOCSTACK により、ml64.exe ユーザーは、フレーム関数のアンワインド動作を指定できます。これは、PROC FRAME 宣言から .ENDPROLOG ディレクティブまでのプロローグ内でのみ指定できます。 これらのディレクティブはコードを生成しません。.xdata および .pdata だけを生成します。 .ALLOCSTACK は、アンワインドされるアクションを実際に実装する命令の後に置かれる必要があります。 不一致が起こらないように、アンワインド ディレクティブとアンワインド対象のコードを 1 つのマクロにラップすることをお勧めします。

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

参照

その他の技術情報

ディレクティブ リファレンス