.ALLOCSTACK
Genera un UWOP_ALLOC_SMALL o un UWOP_ALLOC_LARGE con le dimensioni specificate per l'offset corrente nel prologo.
Sintassi
. Dimensioni ALLOCSTACK
Osservazioni:
MASM sceglierà la codifica più efficiente per una determinata dimensione.
. ALLOCSTACK consente agli utenti di ml64.exe di specificare la modalità di rimozione di una funzione frame ed è consentita solo all'interno del prologo, che si estende dalla dichiarazione PROC FRAME all'oggetto . Direttiva ENDPROLOG . Queste direttive non generano codice; generano .xdata
solo e .pdata
. . ALLOCSTACK deve essere preceduto da istruzioni che implementano effettivamente le azioni da rimuovere. È consigliabile eseguire il wrapping di entrambe le direttive di rimozione e il codice che devono rimuovere in una macro per garantire l'accordo.
L'operando di dimensioni deve essere un multiplo di 8.
Per altre informazioni, vedere MASM per x64 (ml64.exe).
Esempio
L'esempio seguente illustra come specificare un gestore di rimozione/eccezione:
; 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