.PUSHREG

Génère une UWOP_PUSH_NONVOL entrée de code de déroulement pour le numéro de registre spécifié à l’aide du décalage actuel dans le prologue.

Syntaxe

. Registre PUSHREG

Notes

. PUSHREG permet ml64.exe utilisateurs de spécifier comment une fonction frame se déroule et est uniquement autorisée dans le prologue, qui s’étend de la déclaration PROC FRAME à l’objet . Directive ENDPROLOG . Ces directives ne génèrent pas de code ; ils génèrent .xdata uniquement et .pdata. . PUSHREG doit être précédé d’instructions qui implémentent réellement les actions à annuler. Il est recommandé d’encapsuler les directives de déroulement et le code qu’ils sont destinés à dérouler dans une macro pour garantir l’accord.

le registre peut être l’un des suivants :
RAX | RCX | RDX | RBX | RDI | RSI | RBP | R8 | R9 | R10 | R11 | R12 | R13 | R14 | R15.

Pour plus d’informations, consultez MASM pour x64 (ml64.exe).

Exemple

Description

L’exemple suivant montre comment envoyer (push) des registres non volatiles.

Code

; 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

Voir aussi

Informations de référence sur les directives
Grammaire MASM BNF