ESI的一个问题?
c++中定义一个指向函数的指针,并用这个指针访问函数时
看vc6输出的汇编代码都能看到
mov esi, esp
call DWORD PTR ?fp1@@3P6AXXZA ; fp1
cmp esi, esp
call __chkesp
这样的代码,函数开头不是已经保存ESP到EBP中了吗,怎么还要再用ESI确认一下,这编译器是害怕什么呢?程序最后还是用EBP恢复ESP呀,还有别的不安全因素?
这是为什么呢???
2005-09-30 18:48