Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
Genera una entrada de código de desenredado UWOP_PUSH_NONVOL para el número de registro especificado mediante el desplazamiento actual en el prólogo.
Sintaxis
.PUSHREG registro
Comentarios
. PUSHREG permite a los usuarios de ml64.exe especificar cómo se desenreda una función de marco y solo se permite dentro del prólogo, que se extiende desde la declaración PROC FRAME a . Directiva ENDPROLOG . Estas directivas no generan código; solo generan .xdata y .pdata. .PUSHREG debe ir precedido de instrucciones que implementen realmente las acciones que se van a desenredar. Se recomienda ajustar las directivas de desenredado y el código que van a desenredar en una macro para garantizar que se cumple el contrato.
register puede ser uno de los siguientes valores:
RAX | RCX | RDX | RBX | RDI | RSI | RBP | R8 | R9 | R10 | R11 | R12 | R13 | R14 | R15.
Para más información, consulte MASM para x64 (ml64.exe).
Ejemplo
Descripción
En el ejemplo siguiente, se muestra cómo insertar registros no volátiles.
Código
; 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