Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
.PUSH2REGregister1, 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
.PUSH2REGpara 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 PROCFRAMEa . Directiva ENDPROLOG . - Estas directivas generan metadatos de desenredado (
.xdatay.pdatasecciones), pero no generan código ejecutable. En Desenredado versión 3,.PUSH2REGdebe 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_2código de desenredado. De lo contrario, MASM emite unWOD_PUSH2có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