.PUSHREG

 

Pour obtenir la dernière documentation sur Visual Studio 2017 RC, consultez Documentation Visual Studio 2017 RC.

Génère une entrée de code de déroulement d' UWOP_PUSH_NONVOL pour le nombre spécifié de registre à l'aide de l'offset actif en prologue.

.PUSHREG register  

.PUSHREG Permet aux utilisateurs de ml64.exe pour spécifier comment une fonction de frame se déroule, et uniquement autorisé dans le prologue, qui s'étend de la déclaration de FRAME de PROC à la directive de .ENDPROLOG . Ces directives ne génèrent pas de code ; ils génèrent uniquement .xdata et .pdata. .PUSHREG Doit être précédé de l'instruction qui implémentent réellement les actions devant être déroulé. Il est conseillé d'encapsuler les directives de déroulement et le code qu'ils sont censées les dérouler dans une macro pour garantir le contrat.

Pour plus d'informations, consultez MASM for x64 (ml64.exe).

Description

L'exemple suivant montre comment effectuer des tegisters 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  

Directives Reference

Afficher: