. POP2REG

Genererar en post med två registreringar med pop unwind-kod för det angivna registerparet med den aktuella förskjutningen i epilogen.

Syntax

. POP2REGregister1, register2

Parameters

register1
Det första registret som ska visas. Måste vara ett allmänt 64-bitarsregister.

register2
Det andra registret som ska visas. Måste vara ett allmänt 64-bitarsregister.

register1 och register2 kan var och en av följande vara:
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.

Anmärkningar

Important

Detta direktiv är experimentellt och kan komma att ändras. Aktivera Varva ned version 3 med ml64.exe /unwindv3.

  • . POP2REG är endast giltigt i Varva ned version 3. Det är epilogens motsvarighet till . PUSH2REG.
  • . POP2REG 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, . POP2REG måste visas före instruktionen som faktiskt implementerar åtgärden för att ångras.
  • I Avspolning av version 3 är epilogdirektiv obligatoriska för kodgenerering av epiloger. Inga epilog-avrullningskoder genereras utan ett .BEGINEPILOG/.ENDEPILOG par.
  • 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.

Om register1 och register2 är i följd och i ökande ordning genererar MASM en WOD_PUSH_CONSECUTIVE_2 avspolningskod. Annars genererar MASM en WOD_PUSH2 avspolningskod.

Note

I Varva ned version 1 visas direktivet efter motsvarande instruktion. I Varva ned version 3 visas direktivet före instruktionen.

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

Se även

x64 Varva ned version 3 (experimentell)
Referens för direktiv
. PUSH2REG
. POPREG
. BEGINEPILOG
MASM BNF-grammatik