Compartir por


.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

. Tamaño ALLOCSTACK

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).

Ejemplo

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

Referencia de directivas
Gramática BNF de MASM