. POP2REG

Genereert een pop-codevermelding met twee registraties voor het opgegeven registerpaar met behulp van de huidige offset in de epiloog.

Syntax

. POP2REGregister1, register2

Parameters

register1
Het eerste register om te popen. Moet een 64-bits 64-bits register voor algemeen gebruik zijn.

register2
Het tweede register om te popen. Moet een 64-bits 64-bits register voor algemeen gebruik zijn.

register1 en register2 kunnen elk een van de volgende zijn:
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.

Opmerkingen

Important

Deze richtlijn is experimenteel en kan worden gewijzigd. Schakel versie 3 van de rust in met ml64.exe /unwindv3.

  • . POP2REG is alleen geldig in afwikkelversie 3. Het is de epiloog-tegenhanger voor . PUSH2REG.
  • . POP2REG is alleen toegestaan binnen een epilooggebied, tussen . BEGINEPILOG en . ENDEPILOG.
  • Deze instructies genereren een ontspannen metagegevens (.xdata en .pdata secties), maar produceren geen uitvoerbare code.
  • In Relax versie 3, . POP2REG moet worden weergegeven voordat de instructie waarmee de actie daadwerkelijk wordt geïmplementeerd, wordt uitgevoerd.
  • In Relax versie 3 zijn epiloogrichtlijnen verplicht voor het afwikkelen van codegeneratie van epiloog. Er worden geen epiloog-afwikkelcodes verzonden zonder .BEGINEPILOG/.ENDEPILOG een paar.
  • Om de overeenkomst te garanderen, verpakt u zowel de richtlijnen voor afwikkelen als de code die ze zijn bedoeld om in een macro tot rust te komen.

Als register1 en register2 opeenvolgend en in toenemende volgorde zijn, verzendt MASM een WOD_PUSH_CONSECUTIVE_2 afwikkelcode. Anders verzendt MASM een WOD_PUSH2 afwikkelcode.

Note

In Relax versie 1 wordt de instructie weergegeven na de bijbehorende instructie. In Relax versie 3 wordt de instructie weergegeven vóór de instructie.

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

Zie ook

x64 Versie 3 tot rust laten komen (experimenteel)
Naslaginformatie over richtlijnen
. PUSH2REG
. POPREG
. BEGINEPILOG
MASM BNF-grammatica