ARM分支基于代码的预测

时间:2017-12-01 07:57:12

标签: arm conditional branch-prediction

所以我正在尝试学习这个测试,学习指南中的一个内容为我们提供了一些ARM代码,并告诉我们根据代码的运行方式填写分支预测表。

我可以理解我应该怎么做,但是通过分支预测,实际结果也会发挥作用,我无法从代码中找出结果(每个周期)。代码是:

    MOV r0, #4
B1  MOV r2, #5; Branch 1
    SUB r2, r2, r0
B2  SUBS r2, r2, #1; Branch 2
    BNE B2
    SUBS r0, r0, #1
    BNE B1

令我困惑的是BNE声明。通常当我看到其中一个条件语句时,代码中有一个CMP语句,这样我就可以知道是否接受分支。但是我在这段代码中看不到任何比较语句,所以我不知道如何判断我是否应该选择分支。

1 个答案:

答案 0 :(得分:0)

SUBS执行减法并在一条指令中与结果的零进行比较。 BNE条件分支使用由这些SUBS指令

设置的条件标志