汇编有局部变量???
“addr可以处理局部变量而 offset 则不能。局部变量只是在运行时在堆栈中分配内存空间。而 offset 则是在编译时由编译器解释,这显然不能用offset 在运行时来分配内存空间。编译器对 addr 的处理是先检查处理的是全局还是局部变量,若是全局变量则把其地址放到目标文件中,这一点和 offset 相同,若是局部变量,就在执行 invoke 语句前产生如下指令序列:
lea eax, LocalVar
push eax
因为lea指令能够在运行时决定标号的有效地址,所以有了上述指令序列,就可以保证 invoke 的正确执行了。”
请问这句话中的“局部变量”是什么意思?用GlobalAlloc分配的吗?可那时指针是标号地址的内容,直接用标号就可以了啊!
难道可以“声明”“局部变量”?
另外一个相关的问题,用汇编怎样实现递归?在栈中分配活动记录吗?那用系统栈还是自定义栈?
自定义的话如何确定大小?