Share via


.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

参照

その他の技術情報

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