2.4. 条件执行

在 ARM 状态下以及具有 Thumb-2 的处理器上的 Thumb 状态下,大多数数据处理指令都具有一个选项,该选项可根据运算结果来更新应用程序状态寄存器 (APSR) 中的 ALU 状态标记。 有些指令会更新所有标记,而有些指令仅更新部分标记。 如果某一标记未得到更新,则会保留其原始值。 每个指令的描述详细介绍了它对这些标记所具有的影响。 未执行的条件指令对这些标记没有影响。

在早期体系结构中的 Thumb 状态下,大多数数据处理指令会自动更新 ALU 状态标记。 没有用于更新这些标记的选项, 而其他指令不能更新这些标记。

在 ARM 状态下以及具有 Thumb-2 的处理器上的 Thumb 状态下,可以根据其他指令中设置的 ALU 状态标记有条件地执行指令,执行时间为:

可以根据 APSR 中的 ALU 状态标记的状态有条件地执行几乎所有 ARM 指令。 有关添加到指令中以使其有条件执行的后缀的列表,请参阅Table 2.2

在 Thumb 状态下,使用条件跳转是一种条件执行机制。

在具有 Thumb-2 的处理器上的 Thumb 状态下,可以使用特殊的 IT (If-Then) 指令使指令有条件地执行。 此外,还可以使用 CBZ(零条件跳转)和 CBNZ 指令将寄存器值与零进行比较。

本节介绍了以下内容:

Copyright © 2002-2007 ARM Limited. All rights reserved. ARM DUI 0204HC
Non-Confidential