vc2003 release模式下的反汇编代码如何看??

HunterForPig 2008-12-22 10:20:41
打开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是如何回事!谢谢!
...全文
342 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
WJN92 2012-05-05
  • 打赏
  • 举报
回复
一般是先用DEBUG版的,最后才用RELEASE版的吧
用户 昵称 2012-05-04
  • 打赏
  • 举报
回复
不好意思,回错帖子了。
用户 昵称 2012-05-04
  • 打赏
  • 举报
回复
nvgbcnbvnbvxnb
  • 打赏
  • 举报
回复
up一下。。。
Q-Luo 2009-02-12
  • 打赏
  • 举报
回复
编译器对RELEASE版本有很多优化
大熊猫侯佩 2009-02-12
  • 打赏
  • 举报
回复
编译器做了优化,楼主可以看看类似 逆向揭秘 的书籍,其中
归纳了一般情况下编译器如何将正常代码逻辑做优化。不过从汇编语言角度来说,
没有优化,你自己就是优化器,一条条的代码全部由你来组织。
killbug2004 2009-02-09
  • 打赏
  • 举报
回复
LZ上正解
case 1这些语句是标号
nineforever 2009-02-08
  • 打赏
  • 举报
回复
cmp应该就在下面的代码上面

00401005 je main+1Ch (40101Ch)
00401007 dec eax
00401008 jne main+2Bh (40102Bh)
sunbao 2009-02-08
  • 打赏
  • 举报
回复
优化后就是要去掉某些冗余的代码,这时看上去和源码有些不同了,但执行结果是一样的。
cnzdgs 2008-12-22
  • 打赏
  • 举报
回复
你copy的代码不全,不过可以看出,是先把a放到eax里面,然后把eax减1,判断如果为0,则case 1,否则再把eax减1,如果为0,则case 2,否则default。
内容概要:本文提出了一种基于神经网络的数据驱动迭代学习控制(ILC)算法,专门用于解决具有未知动态模型和重复任务特征的非线性单输入单输出(SISO)离散时间系统在无人车路径跟踪中的应用问题,并通过Matlab代码实现了算法的仿真验证。该方法充分利用神经网络强大的非线性逼近能力和自适应学习特性,结合迭代学习控制在周期性任务中逐步优化控制输入的优势,即使在缺乏精确系统数学模型的前提下,也能有效提升无人车在复杂环境下的路径跟踪精度与系统稳定性。算法的核心在于通过多次运行过程中不断修正控制律,实现对期望轨迹的渐近跟踪。; 适合人群:具备一定现代控制理论基础知识、熟悉迭代学习控制基本概念,并拥有Matlab编程与仿真实践经验的研究生、科研人员及自动化、机器人领域的相关工程师。; 使用场景及目标:① 解决无人车在模型未知或难以精确建模的复杂动态环境中的高精度路径跟踪控制问题;② 为一类具有重复运行特性的非线性系统提供一种不依赖精确模型的先进控制策略;③ 推动数据驱动与人工智能方法在自动化控制领域的工程应用与学术研究发展。; 阅读建议:读者应重点理解神经网络在控制律中的设计与集成方式、迭代学习机制的具体实现流程,以及两者融合的创新点。务必结合所提供的Matlab代码进行详细的阅读、调试与仿真分析,通过改变参数和工况来观察控制效果,以深化对算法内在机理和性能特点的掌握。
内容概要:本文档是一份面向参与大学生创新创业训练计划(大创项目)的在校学生的系统性指导资源,全面覆盖国家级与省级项目的申报、执行、中期检查、结题全流程。内容包括大创项目的政策解读、分类与级别说明、申报流程与时间节点、评审标准解析,并提供创新训练、创业训练、创业实践三类项目的申报书撰写指南与范文。文档重点围绕物联网、数据分析、Web应用三大技术方向,提供可运行的完整项目实现案例,如基于ESP32的智慧农场系统、基于Python与Tableau的公交数据可视化平台、基于Spring Boot的校园协作平台,涵盖技术架构、代码实现、系统部署等细节。此外,还包括答辩PPT制作技巧、中期检查与结题报告的撰写模板,以及各类工具与学习资源推荐,助力学生从项目构思到成果落地的全过程。; 适合人群:参与大创项目的在校本科生,尤其是计算机、数据科学、物联网等相关专业,具备一定编程基础和科研兴趣的学生。; 使用场景及目标:①指导学生高效撰写符合评审要求的申报书、答辩材料、中期报告与结题报告;②提供三大主流技术方向的完整项目范例,帮助学生快速搭建原型系统,提升技术实践能力;③辅助团队进行项目规划、进度管理与成果总结,确保项目顺利立项与结题。; 阅读建议:建议根据项目所处阶段选择性阅读对应章节,申报阶段重点学习第1-4章,执行阶段参考第5-9章的技术实现案例,结题阶段使用第6章模板。应结合自身项目特点灵活应用范文与代码,避免照搬,注重原创性与可行性,并积极与指导教师沟通完善方案。

21,499

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧