条件分支的实现方法同循环处理的实现方法类似,使用的也是cmp指令和跳转指令。
条件分支就是利用这些指令来实现的。代码清单10-11是,根据变量a的值来调用不同函数(MySub3函数)的从语言源代码。结果如代码清单10-12所示。
代码清单 10-12 中用到了三种跳转指令,分别是比较结果小时跳转的 jle(jump on less or equal)、大时跳转的jge(jump on greater or equal)、不管结果怎样都无条件跳转的 jmp。在这些跳转指令之前还有用来比较的 cmp 指令,比较结果被保存在了标志寄存器中。这里我们添加了注释,大家不妨顺着程序的流程看一下。虽然同C语言源代码的处理流程不完全相同,不过大家应该知道处理结果是相同的。此外,还有一点需要注意的是,eax 寄存器表示的是变量a。
标签:10,源代码,指令,跳转,清单,10.12,方法,分支 From: https://www.cnblogs.com/24koi/p/17120967.html