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 pop de desenredado de dos registros para el par de registro especificado mediante el desplazamiento actual en el epílogo.
Sintaxis
. POP2REGregister1, register2
Parámetros
register1
Primer registro que se va a mostrar. Debe ser un registro de 64 bits de uso general.
register2
Segundo registro que se va a mostrar. 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 con ml64.exe /unwindv3.
- . POP2REG solo es válido en Desenredado versión 3. Es el homólogo del epílogo de . PUSH2REG.
- . POP2REG solo se permite dentro de una región de epílogo, entre . BEGINEPILOG y . ENDEPILOG.
- Estas directivas generan metadatos de desenredado (
.xdatay.pdatasecciones), pero no generan código ejecutable. - En Desenredar versión 3, . POP2REG deben aparecer antes de que la instrucción que implemente realmente la acción que se desenlace.
- En Desenredado versión 3, las directivas de epílogo son obligatorias para la generación de código de desenredado de epílogo. No se emiten códigos de desenredado de epílogo sin un
.BEGINEPILOG/.ENDEPILOGpar. - Para garantizar el acuerdo, encapsula 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 .
Example
; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
.push2reg rbx, rsi
push2 rbx, rsi
.push2reg r10, r11
push2 r10, r11
.endprolog
; rest of function ...
.beginepilog
.pop2reg r10, r11
pop2 r10, r11
.pop2reg rbx, rsi
pop2 rbx, rsi
.endepilog
ret
Example1 ENDP
_text ENDS
END
Consulte también
x64 Desenredado versión 3 (experimental)
Referencia de directivas
. PUSH2REG
. POPREG
. BEGINEPILOG
Gramática BNF de MASM