鱼C论坛

 找回密码
 立即注册
查看: 3066|回复: 2

奇怪,for循环反汇编,循环增量跟源码里的不一致

[复制链接]
发表于 2013-9-15 15:18:30 | 显示全部楼层 |阅读模式
1鱼币
我写的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循环的增量 被编译成了:
inc  esi                        //esi是循环变量
add edx,10              //edx就是源码中的star指针
cmp edx,ecx
跳转到循环开始处     //跳转

按c++代码来看的话, add edx,10 这里应该add edx,eax+esi*4 才对呀,为什么会是这个样子的呢?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-20 02:05:53 | 显示全部楼层
问题不完整!!!
把代码全发上来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-10-16 21:48:48 | 显示全部楼层
代码不完整,看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 21:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表