.PUSHREG

使用序言中的当前偏移为指定寄存器编号生成 UWOP_PUSH_NONVOL 展开代码条目。

语法

.PUSHREG register

注解

.PUSHREG 允许用户ml64.exe指定帧函数展开的方式,并且仅允许在序幕中展开,该序言从 PROC FRAME 声明扩展到 PROC FRAME 声明。ENDPROLOG 指令。 这些指令不生成代码;它们仅生成 .xdata.pdata.PUSHREG 前面应有实际实现要撤消的操作的说明。 最好将展开指令和代码包装在宏中,以确保一致。

寄存器可以是以下项之一:
RAX | RCX | RDX | RBX | RDI | RSI | RBP | R8 | R9 | R10 | R11 | R12 | R13 | R14 | R15。

有关详细信息,请参阅 MASM for x64 (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

另请参阅

指令参考
MASM BNF 语法