. PUSH2REG

Genera una entrada de código de desenredado de inserción de dos registros para el par de registro especificado mediante el desplazamiento actual en el prólogo.

Syntax

.PUSH2REG register1, register2

Parámetros

register1
Primer registro que se va a insertar. Debe ser un registro de 64 bits de uso general.

register2
Segundo registro que se va a insertar. Debe ser un registro de 64 bits de uso general.

register1 y register2 pueden ser uno de los siguientes:
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.

Observaciones

Importante

Esta directiva es experimental y está sujeta a cambios. Habilite Desenredado versión 3 mediante ml64.exe /unwindv3.

  • Use .PUSH2REG para especificar cómo se desenreda una función de marco. Solo puede usar esta directiva dentro del prólogo, que se extiende desde la declaración PROCFRAME a . Directiva ENDPROLOG .
  • Estas directivas generan metadatos de desenredado (.xdata y .pdata secciones), pero no generan código ejecutable. En Desenredado versión 3, .PUSH2REG debe aparecer antes de que la instrucción que realmente implemente la acción para desenredar. Para garantizar el acuerdo, se recomienda ajustar las directivas de desenredado y el código que están diseñados para desenredar en una macro.
  • Si register1 y register2 son consecutivos y en orden creciente, MASM emite un WOD_PUSH_CONSECUTIVE_2 código de desenredado. De lo contrario, MASM emite un WOD_PUSH2 código de desenredado.

Note

En Desenredar versión 1, la directiva aparece después de la instrucción correspondiente. En Desenredar versión 3, la directiva aparece antes de la instrucción .

Ejemplo de desenredado3

; 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

Consulte también

x64 Desenredado versión 3 (experimental)
Referencia de directivas
. POP2REG
. PUSHREG
. ENDPROLOG
Gramática BNF de MASM