.ALLOCSTACK
Genera una entrada UWOP_ALLOC_SMALL o UWOP_ALLOC_LARGE con el tamaño especificado para el desplazamiento actual en el prólogo.
Sintaxis
.ALLOCSTACKtamaño
Comentarios
MASM elegirá la codificación más eficaz para un tamaño dado.
.ALLOCSTACK permite a los usuarios ml64.exe especificar cómo se desenreda una función de marco y solo se permite dentro del prólogo, que se extiende desde la declaración PROC FRAME hasta la directiva .ENDPROLOG. Estas directivas no generan código; solo generan .xdata
y .pdata
. .ALLOCSTACK debe ir precedido de instrucciones que implementan realmente las acciones que se van a desenlazar. Se recomienda ajustar las directivas de desenredado y el código que van a desenredar en una macro para garantizar que se cumple el contrato.
El operando tamaño debe ser un múltiplo de 8.
Para más información, consulte MASM para x64 (ml64.exe).
Muestra
En el ejemplo siguiente se muestra cómo especificar un controlador de excepciones/desenredado:
; ml64 ex3.asm /link /entry:Example1 /SUBSYSTEM:Console
text SEGMENT
PUBLIC Example3
PUBLIC Example3_UW
Example3_UW PROC NEAR
; exception/unwind handler body
ret 0
Example3_UW ENDP
Example3 PROC FRAME : Example3_UW
sub rsp, 16
.allocstack 16
.endprolog
; function body
add rsp, 16
ret 0
Example3 ENDP
text ENDS
END
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de