keil仿真时,if语句没有进行条件判断就执行了其内部语句

理论上应该执行 358,359行
实际上却执行了 616 617行

358 359 和 616 617 是一样的语句
358,359 没有进行 反汇编
而616,617反汇编成功了

358、359行与616、617的内容相同,所以编译器只编了一段代码,不同的入口都跳转到这里而已。这没什么好说的。
只要你开优化,并且优化等级开得足够高,那么编译器是会“智能”调整汇编的结果,有时候会让你看得头晕目眩的。
你需要自己跟踪一下这个函数以内的汇编,看看到底是否满足你的需求。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答