4.8.3. CBZ 和 CBNZ

比较,为零则跳转;比较,为非零则跳转。

语法

CBZ Rn, label
CBNZ Rn, label

其中:

Rn

是存放操作数的寄存器。

label

是跳转目标。

用法

可以使用 CBZCBNZ 指令避免更改条件代码标记并减少指令数目。

除了不更改条件代码标记外,CBZ Rn, label 与下列指令序列功能相同:

    CMP     Rn, #0
    BEQ     label

除了不更改条件代码标记外,CBNZ Rn, label 与下列指令序列功能相同:

    CMP     Rn, #0
    BNE     label

限制

跳转目标必须在指令之后的 4 到 130 个字节之内。

这些指令一定不能在 IT 块内使用。

条件标记

这些指令不更改标记。

体系结构

这些 16 位 Thumb 指令可用于 ARMv6T2 及更高版本。

这些指令没有 ARM 或 32 位 Thumb 版本。

Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IC
Non-Confidential