奇怪,for循环反汇编,循环增量跟源码里的不一致
我写的c++代码是这样:int* star,*c;
int i;
c=(int*)xxxxxxx;
for (i=0;i<*a;i++)
{
star=c+i*4;
if(*star!=0)
{
……
……
return;
}
}
但是在od中反编译发现for循环的增量 被编译成了:
incesi //esi是循环变量
add edx,10 //edx就是源码中的star指针
cmp edx,ecx
跳转到循环开始处 //跳转
按c++代码来看的话, add edx,10 这里应该add edx,eax+esi*4 才对呀,为什么会是这个样子的呢?
问题不完整!!!
把代码全发上来 代码不完整,看不懂
页:
[1]