local指令必须在proc的第一行。
编译器会做以下工作:
1、为每一个local变量预留栈空间
2、为proc过程添加栈管理代码
例:
test_1 proc
local x:DWORD
xor eax,eax
ret
test_1 endp
编译后为:
test_1 proc
push ebp
mov ebp,esp
add esp,0FFFFFFFCh
xor eax,eax
leave
ret
test_1 endp
由此可见,local大大简化了proc定义及临时变量管理