.ALLOCSTACK
为序言中的当前偏移量生成指定大小的 UWOP_ALLOC_SMALL 或 UWOP_ALLOC_LARGE 。
语法
.ALLOCSTACK大小
备注
MASM 将为给定大小选择最有效的编码。
.ALLOCSTACK 允许 ml64.exe 用户指定框架函数的展开方式,并且仅允许在序言内进行扩展,这种情况下,它从 过程 框架声明扩展到 。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