Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Gera uma UWOP_SAVE_XMM128 ou uma UWOP_SAVE_XMM128_FAR entrada de código de desenrolar para o registo e deslocamento XMM especificados usando o deslocamento atual do prólogo. O Microsoft Assembler (MASM) escolhe a codificação mais eficiente.
Sintaxe
.SAVEXMM128xmmreg , offset
Remarks
Use .SAVEXMM128 com ml64.exe para especificar como uma função de frame se desenrola. Só pode usá-lo dentro do prólogo, que se estende da PROCFRAME declaração até ao . Diretiva ENDPROLOG . Estas diretivas geram metadados de desmantelamento (.xdata e .pdata secções), mas não produzem código executável. Preceda .SAVEXMM128 as instruções que realmente implementam as ações a desenrolar. Para garantir o acordo, envolve tanto as diretivas de desmantelamento como o código que devem desfazer numa macro.
O deslocamento deve ser múltiplo de 16.
Comportamento do Unwind Versão 3
Importante
O suporte ao Unwind Versão 3 é experimental e está sujeito a alterações. Ative-o usando ml64.exe /unwindv3.
No Unwind Versão 3, .SAVEXMM128 emite ou uma WOD_SAVE_XMM128WOD_SAVE_XMM128_FAR entrada de código unwind. Microsoft Assembler (MASM) seleciona a codificação mais eficiente com base no tamanho do offset:
| Código de desmontagem | Condition |
|---|---|
WOD_SAVE_XMM128 |
O offset pode ser codificado como um valor escalado de 16 bits |
WOD_SAVE_XMM128_FAR |
O offset requer um valor completo de 32 bits |
Observação
No Unwind Versão 1, as diretivas surgem após a instrução. No Unwind Versão 3, as diretivas surgem antes da instrução.
.SAVEXMM128 deve aparecer antes da instrução que descreve. Este requisito é o oposto da Versão 1, onde a diretiva segue a instrução.
Exemplo para unwindv3
; 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
A contraparte do epílogo é . RESTOREXMM128.
Ver também
x64 Unwind Versão 3 (experimental)
Referência das diretivas
MASM BNF Gramática
MASM para x64 (ml64.exe)