. POPREG

Genera una WOD_PUSH voce di codice di rimozione per il registro specificato utilizzando l'offset corrente nell'epilogo.

Sintassi

. Registro POPREG

Parametri

Registro
Registro da visualizzare. Deve essere un registro a 64 bit per utilizzo generico.

Osservazioni:

Importante

Questa direttiva è sperimentale ed è soggetta a modifiche. Abilitare Rimozione versione 3 usando l'opzione /unwindv3 in ml64.exe.

.POPREG è valido solo in Rimozione versione 3. È l'epilogo controparte di . PUSHREG.

.POPREG è consentito solo all'interno di un'area epilogo, tra . BEGINEPILOG e . ENDEPILOG. Queste direttive generano metadati di rimozione (.xdata e .pdata sezioni) ma non producono codice eseguibile. In Rimozione versione 3, .POPREG deve essere visualizzato prima dell'istruzione pop che implementa il ripristino del registro. Per garantire il contratto, eseguire il wrapping di entrambe le direttive di rimozione e il codice da rimuovere in una macro.

il registro può essere uno dei seguenti:
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 Rimozione versione 3, le direttive dell'epilogo sono obbligatorie per la generazione del codice di rimozione dell'epilogo. L'assembler non emette codici di rimozione dell'epilogo senza una .BEGINEPILOG/.ENDEPILOG coppia.

Note

In Rimozione versione 1 la direttiva viene visualizzata dopo l'istruzione corrispondente. In Rimozione versione 3 la direttiva viene visualizzata prima dell'istruzione.

Esempio di rimozionev3

; 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

Vedere anche

Versione di rimozione x64 3 (sperimentale)
Riferimento alle direttive
. PUSHREG
. POP2REG
. BEGINEPILOG
Grammatica BNF MASM