.ALLOCSTACK
针对序言中的当前偏移生成具有指定大小的 UWOP_ALLOC_SMALL 或 UWOP_ALLOC_LARGE。
语法
.ALLOCSTACK 大小
注解
对于给定的大小,MASM 将会选择最高效的编码。
.ALLOCSTACK 允许 ml64.exe 用户指定帧函数的展开方式,并且仅允许在序言中展开,该序表从 PROC FRAME 声明扩展到 PROC FRAME 声明 .ENDPROLOG 指令。 这些指令不生成代码;它们仅生成 .xdata
和 .pdata
。 .ALLOCSTACK 前面应有实际实现要撤消的操作的说明。 最好将展开指令和代码包装在宏中,以确保一致。
size 操作数必须是 8 的倍数。
有关详细信息,请参阅 MASM for x64 (ml64.exe)。
示例
以下示例演示如何指定展开/异常处理程序:
; 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