jsjbd(学生用文档4-分支语句).pdf

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
jsjbd(学生用文档4-分支语句)

分支语句 1. PPT 中提出的问题: 回答:不一定,比如条件表达式,表达式1 ? 表达式2 ∶表达式3 的反汇 编结果跟if else 是极其相似的,因此在遇到无法准确判断的复杂条件表达式时, 即使阅读高级语言源码也可能是件令人抓狂的事情,因此需要各位同学认真分 析,并确定语义块边界,从而具体判断高级语言代码。 2. IF ELSE 组成的多分支语句 下面给出的是一个if else if else if else…else 形式的多分支程序,debug 版本 的程序的反汇编代码及注释已经在下面给出,请各位同学自己编写完成这段小程 序的控制台程序代码,对照下面的注释,仔细理解这种多分支结构的特点,并尝 试 总 结 在 该 种 情 况 下 , 该 如 何 判 断 语 义 块 的 边 界 。 在这种多分支情况下,要想弄清楚高级语言的逻辑,回答以下几个问题(将 这2 个问题及答案写入最后的大作业大作业撰写请按章节组织文字): 1. If 语句由哪几句汇编代码组成? 2. 由上面的注释可知,else 被编译器编译成一个jmp 语句,并且jmp 的目 标是整个分支结构的结尾,该如何定位最后一个else 语义块? 总结,下面是对多if else 组成的多分支语句的反汇编代码的总结,请认真阅 读并思考和理解该如何在一段反汇编结果中确定高级语言 if else 组成的多分支 结构。 由该结构可知,每个else..if..或else 语义块之前都有一个jmp 指令,且 这些 jmp 都跳转到同一个地址,由此就可以判断这是一个多分支指令,进 而可以逐渐剥离并判断得到c++源码。 由于编译器可以在编译期间对代码进行优化,所以当分支语句中存在永远不 可能成立的条件,即该分支永远不可达时,永远不可能执行时,它就会被编译器 优化掉不参与编译,如if(argc0) {…}这样的条件和语义块。 请各位同学参照下面的程序自行编写一段小代码,分析编译器对代码的优 化。最后将分组课堂验收程序以及对编译结果的解释说明。

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档