. PUSH2REG

Genera una voce di codice di rimozione push a due registri per la coppia di registri specificata usando l'offset corrente nel prologo.

Sintassi

.PUSH2REG register1, register2

Parametri

register1
Primo registro di cui eseguire il push. Deve essere un registro a 64 bit per utilizzo generico.

register2
Secondo registro di cui eseguire il push. Deve essere un registro a 64 bit per utilizzo generico.

register1 e register2 possono essere:
RAX, RCX, RDX, RBX, RDI, RSI, RBP, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31.

Osservazioni:

Importante

Questa direttiva è sperimentale ed è soggetta a modifiche. Abilitare la versione di rimozione 3 usando ml64.exe /unwindv3.

  • Usare .PUSH2REG per specificare la modalità di rimozione di una funzione frame. È possibile usare questa direttiva solo all'interno del prologo, che si estende dalla dichiarazione PROCFRAMEall'oggetto . Direttiva ENDPROLOG .
  • Queste direttive generano metadati di rimozione (.xdata e .pdata sezioni) ma non producono codice eseguibile. In Rimozione versione 3, .PUSH2REG deve essere visualizzato prima dell'istruzione che implementa effettivamente l'azione da rimuovere. Per garantire il contratto, è consigliabile eseguire il wrapping sia delle direttive di rimozione che del codice che si intende rimuovere in una macro.
  • Se register1 e register2 sono consecutivi e in ordine crescente, MASM genera un WOD_PUSH_CONSECUTIVE_2 codice di rimozione. In caso contrario, MASM genera un WOD_PUSH2 codice di rimozione.

Note

In Rimozione versione 1 la direttiva viene visualizzata dopo l'istruzione corrispondente. In Rimozione versione 3 la direttiva viene visualizzata prima dell'istruzione.

Esempio di rimozionev3

; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
   .push2reg r10, r11
   push2 r10, r11
   .push2reg rbx, rsi
   push2 rbx, rsi
.endprolog
   ; rest of function ...
   ret
Example1 ENDP
_text ENDS
END

Vedere anche

Versione di rimozione x64 3 (sperimentale)
Riferimento alle direttive
. POP2REG
. PUSHREG
. ENDPROLOG
Grammatica BNF MASM