. POPREG

Genereert een WOD_PUSH afwikkelcodevermelding voor het opgegeven register met behulp van de huidige offset in de epiloog.

Syntaxis

. POPREG-register

Parameters

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

Opmerkingen

Important

Deze richtlijn is experimenteel en kan worden gewijzigd. Schakel versie 3 uit door de /unwindv3 optie in ml64.exein te schakelen.

.POPREG is alleen geldig in afwikkelversie 3. Het is de epiloog-tegenhanger voor . PUSHREG.

.POPREG 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 .POPREG moet worden weergegeven voordat de pop instructie waarmee de registerherstelbewerking wordt geïmplementeerd. 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.

registratie kan 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

In Relax versie 3 zijn epiloogrichtlijnen verplicht voor het afwikkelen van codegeneratie van epiloog. De assemblyer verzendt geen epiloog code zonder een .BEGINEPILOG/.ENDEPILOG paar.

Opmerking

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

Voorbeeld voor relaxv3

; 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

Zie ook

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