vc2003 release模式下的反汇编代码如何看??
打开02优化
发现很多代码都没有了
如下:
int main(int argc, char* argv[])
{
int a =argc;
switch (a)
{
case 1:
printf("%d",a);
break;
case 2:
printf("%d",a);
break;
default:break;
}
return 0;
}
反汇编后:
--- d:\myproject\asm\testc\a.c -------------------------------------------------
00401005 je main+1Ch (40101Ch)
00401007 dec eax
00401008 jne main+2Bh (40102Bh)
break;
case 2:
printf("%d",a);
0040100A push 2
0040100C push offset string "%d" (4060FCh)
00401011 call printf (40102Eh)
00401016 add esp,8
break;
default:break;
}
return 0;
00401019 xor eax,eax
}
0040101B ret
{
case 1:
printf("%d",a);
0040101C push 1
0040101E push offset string "%d" (4060FCh)
00401023 call printf (40102Eh)
00401028 add esp,8
break;
default:break;
}
return 0;
0040102B xor eax,eax
}
0040102D ret
上面是在vc release版本copy 的反汇编代码 没有cmp 等指令,不知道如何比较选择支路的?
我想看看release版本的switch 反汇编后是怎样的该怎样写才能看到,不要debug的,我想看看网上大家说的编译器用向量表存储优化switch是如何回事!谢谢!