Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Genera una UWOP_SAVE_XMM128 voce di codice di rimozione o UWOP_SAVE_XMM128_FAR per il registro XMM e l'offset specificati utilizzando l'offset del prologo corrente. Microsoft Assembler (MASM) sceglie la codifica più efficiente.
Sintassi
.SAVEXMM128xmmreg , offset
Osservazioni:
Usare .SAVEXMM128 con ml64.exe per specificare la modalità di rimozione di una funzione frame. È possibile usarlo solo all'interno del prologo, che si estende dalla PROCFRAME dichiarazione all'oggetto . Direttiva ENDPROLOG . Queste direttive generano metadati di rimozione (.xdata e .pdata sezioni) ma non producono codice eseguibile. Precedere .SAVEXMM128 le istruzioni che implementano effettivamente le azioni da rimuovere. Per garantire il contratto, eseguire il wrapping di entrambe le direttive di rimozione e il codice da rimuovere in una macro.
offset deve essere un multiplo di 16.
Comportamento di rimozione versione 3
Importante
Il supporto della versione 3 della rimozione è sperimentale ed è soggetto a modifiche. Abilitarlo usando ml64.exe /unwindv3.
In Rimozione versione 3 .SAVEXMM128 genera una WOD_SAVE_XMM128 voce di codice di rimozione o WOD_SAVE_XMM128_FAR . Microsoft Assembler (MASM) seleziona la codifica più efficiente in base alle dimensioni di offset:
| Codice di rimozione | Condition |
|---|---|
WOD_SAVE_XMM128 |
offset può essere codificato come valore a 16 bit ridimensionato |
WOD_SAVE_XMM128_FAR |
offset richiede un valore a 32 bit completo |
Note
In Rimozione versione 1 le direttive vengono fornite dopo l'istruzione . In Rimozione versione 3, le direttive vengono prima dell'istruzione.
.SAVEXMM128 deve essere visualizzato prima dell'istruzione descritta. Questo requisito è l'opposto della versione 1, in cui la direttiva segue l'istruzione .
Esempio di rimozionev3
; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
.allocstack 030h
sub rsp, 030h
.savexmm128 xmm6, 0
movdqa [rsp], xmm6
.savexmm128 xmm7, 010h
movdqa [rsp+010h], xmm7
.endprolog
; rest of function ...
movdqa xmm7, [rsp+010h]
movdqa xmm6, [rsp]
add rsp, 030h
ret
Example1 ENDP
_text ENDS
END
La controparte dell'epilogo è . RESTOREXMM128.
Vedi anche
Versione di rimozione x64 3 (sperimentale)
Riferimento alle direttive
Grammatica BNF MASM
MASM per x64 (ml64.exe)