Compartilhar via


.PUSHREG

Gera uma entrada de código de desacoplamento UWOP_PUSH_NONVOL para o número de registro especificado usando o deslocamento atual no prólogo.

Sintaxe

.PUSHREG register

Comentários

. O PUSHREG permite que ml64.exe usuários especifiquem como uma função de quadro é desenrolada e só é permitido no prólogo, que se estende da declaração PROC FRAME até o . Diretiva ENDPROLOG . Essas diretivas não geram código. Elas só geram .xdata e .pdata. O .PUSHREG deve ser precedido por instruções que realmente implementam as ações a serem desacopladas. É uma boa prática encapsular as diretivas de desacoplamento e o código que elas devem desacoplar em uma macro para garantir o acordo.

O Registro pode ser um dos seguintes:
RAX | RCX | RDX | RBX | RDI | RSI | RBP | R8 | R9 | R10 | R11 | R12 | R13 | R14 | R15.

Para obter mais informações, confira MASM para x64 (ml64.exe).

Amostra

Descrição

O exemplo a seguir mostra como enviar por push registros não voláteis.

Código

; 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

Confira também

Referência de diretivas
Gramática BNF do MASM