.PUSHREG
プロローグ内の現在のオフセットを使用して、指定のレジスタ数に対して UWOP_PUSH_NONVOL アンワインド コード エントリを生成します。
.PUSHREG register
解説
.PUSHREG により、ml64.exe ユーザーは、フレーム関数のアンワインド動作を指定できます。これは、PROC FRAME 宣言から .ENDPROLOG ディレクティブまでのプロローグ内でのみ指定できます。これらのディレクティブはコードを生成しません。.xdata および .pdata だけを生成します。.PUSHREG は、アンワインドされるアクションを実際に実装する命令の後に置かれる必要があります。不一致が起こらないように、アンワインド ディレクティブとアンワインド対象のコードを 1 つのマクロにラップすることをお勧めします。
詳細については、「x64 用 MASM (ml64.exe)」を参照してください。
サンプル
説明
以下のサンプルは、非揮発性レジスタをプッシュする動作を示します。
コード
; ml64 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
push r10
.pushreg r10
push r15
.pushreg r15
push rbx
.pushreg rbx
push rsi
.pushreg rsi
.endprolog
; rest of function ...
ret
Example1 ENDP
_text ENDS
END