- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
——啊冲
第四节 C语言判断与分支的反汇编
If else 语句
int myfunction(int c)
{
if (c0 c10)
{
printf(c0 \n);
}
else if (c10 c100)
{
printf(c10 c100 \n);
}
else
{
printf(其它 \n);
}
return c;
}
If判断都是使用cmp再加上条件跳转指令。对于if(a b)的情况,一般都是使用否决法。如果a不成立,立刻跳到走,如果b不成立,同样跳走。从这里看出,在用C语言写一系列条件比较的时候,应该注意排列这些比较,让比较次数越少越好。
cmp 条件,初始值
jle 下一个分支
else if和else的特点是,在开始的地方,都有一条无条件跳转指令,跳转到判断结束处,阻止前面的分支执行结束后,直接进入这个分支的可能。这个分支能执行到的唯一途径是前面的判断条件不满足。
Else 则在jmp之后直接执行操作。而else if则开始重复if之后的操作,用cmp比较,然后用条件跳转指令进行跳转。
Swtich case 语句
条件分支中,有比较特殊的情况是switch.switch 的特点是有多个判断.因为swtich 显然不用判断大于小于,所以都是je,分别跳到每个case处。最后一个是无条件跳转,直接跳到default处。
switch(c)
{
case 0:
printf(c=0);
case 1:
{
printf(c=1);
break;
}
default:
printf(C是其它数);
}
连续的比较与跳转让人想到switch
Cmp …
Je ….
Cmp …
Je …
…
Jmp …
至于case 和default 都非常简单.如果有break,则会增加一个无条件跳转.没有break 的情况下,没有任何循环控制代码.
反汇编练习:
把汇编代码还原成C语言。这种练习非常有好处,请务必一开始就勤加练习。这是消除对汇编的陌生感,顺利完成本节学习目地的唯一方法。
您可能关注的文档
最近下载
- DB3205T 1146-2024 微轻小型无人机机巢通用管理要求.docx VIP
- Robocop 2《机器战警2(1990)》完整中英文对照剧本.docx VIP
- 打工入党自传.doc VIP
- 中国多点微透镜近视离焦设计镜片框架眼镜近视控制效果评价和安全配戴专家共识(2025年).pdf VIP
- 14339网络传播法规复习资料.docx VIP
- GB 50319-2013 建设工程监理规范.docx VIP
- 05S804矩形钢筋混凝土蓄水池(建筑结构图集).pdf
- DB15T 4133-2025盐碱耕地改土培肥抑盐合理利用技术规程.pdf VIP
- 病理科三甲评审要求.docx VIP
- 2025年辽宁省本溪市高一入学英语分班考试真题含答案.docx VIP
文档评论(0)