条件分支的两种方式的对比——条件控制与条件数据

本文探讨了条件分支的两种实现方式——条件控制和条件数据。条件码是判断执行路径的基础,跳转指令类似C语言的goto。条件控制通过计算和判断条件码执行分支,而条件传送在某些情况下能提供更高的效率,但其适用性有限,特别是在涉及可能产生错误条件或副作用的表达式时。条件传送的高效性在现代处理器中更具优势,但错误的分支预测会导致性能下降。
摘要由CSDN通过智能技术生成

1.条件码

前提:在机器代码中,寄存器里有一组单个字的条件码寄存器,他们描述了最近的算术或逻辑操作的属性。可以检测这些寄存器来执行条件分支指令。常见的条件码如下:

条件分支的两种方式的对比——条件控制与条件数据 - 中山爷爷 - 凝聚 的博客

但是,条件码是不能直接访问的,常用的方式有三种:

1.)可以根据条件码的某种组合,将一个字节设置为0或者1;

2.)可以条件跳转到程序的某个其他的部分;

3.)可以有条件地传送数据
 2.跳转指令

机器代码里面的跳转指令类似于C语言的goto,能够跳转至label处的代码执行。因此,IF,else语言翻译成机器代码,可以参考转换成C语言的goto语言格式。类似如下:

if(a+b>0)

c= 1;

else

   c = 2;

goto版本

if(a+b>0)

goto true;

c=2;

true:

c= 1;

3.用条件控制来实现条件分支

如上述例子一样,条件控制方法如C语言中的if/else语句实现条件分支,通过计算a+b的值,然后间接访问上述提及的条件码,此处应访问SF是否为0,经判断&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值