Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Genererar en WOD_PUSH avspolningskodpost för det angivna registret med den aktuella förskjutningen i epilogen.
Syntax
. POPREG-register
Parameters
Registrera dig
Registret som ska visas. Måste vara ett allmänt 64-bitarsregister.
Anmärkningar
Important
Detta direktiv är experimentellt och kan komma att ändras. Aktivera Varva ned version 3 med hjälp /unwindv3 av alternativet i ml64.exe.
.POPREG är endast giltigt i Avspolning version 3. Det är epilogens motsvarighet till . PUSHREG.
.POPREG tillåts endast inom en epilogregion, mellan . BEGINEPILOG och . ENDEPILOG. Dessa direktiv genererar varva ned metadata (.xdata och .pdata avsnitt) men producerar inte körbar kod. I Varva ned version 3 .POPREG måste visas före instruktionen pop som implementerar registeråterställningen. För att säkerställa en överenskommelse omsluter du både avaktiveringsdirektiven och den kod som de är avsedda att varva ned i ett makro.
register kan vara något av följande:
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
I Avspolning av version 3 är epilogdirektiv obligatoriska för kodgenerering av epiloger. Assemblern avger inte epilogavspolningskoder utan ett .BEGINEPILOG/.ENDEPILOG par.
Note
I Varva ned version 1 visas direktivet efter motsvarande instruktion. I Varva ned version 3 visas direktivet före instruktionen.
Exempel på avspolning 3
; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
.pushreg rbx
push rbx
.pushreg rsi
push rsi
.endprolog
; rest of function ...
.beginepilog
.popreg rsi
pop rsi
.popreg rbx
pop rbx
.endepilog
ret
Example1 ENDP
_text ENDS
END
Se även
x64 Varva ned version 3 (experimentell)
Referens för direktiv
. PUSHREG
. POP2REG
. BEGINEPILOG
MASM BNF-grammatik