huahua6644 发表于 2013-9-15 15:18:30

奇怪,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 才对呀,为什么会是这个样子的呢?

565123 发表于 2013-9-20 02:05:53

问题不完整!!!
把代码全发上来

随风听雨雪 发表于 2013-10-16 21:48:48

代码不完整,看不懂
页: [1]
查看完整版本: 奇怪,for循环反汇编,循环增量跟源码里的不一致