4.3.5. CLZ

计算前导零数目。

语法

CLZ{cond} Rd, Rm

其中:

cond

是一个可选的条件代码(请参阅条件执行)。

Rd

是目标寄存器。 Rd 不能为 r15。

Rm

是操作数寄存器。 Rm 不能为 r15。

用法

CLZ 指令对 Rm 中的值中的前导零进行计数,并将结果返回到 Rd 中。 如果未在源寄存器中设置任何位,则该结果值为 32,如果设置了位 31,则结果值为零。

条件标记

此指令不更改标记。

体系结构

此 ARM 指令可用于 ARMv5 及更高版本。

此 32 位 Thumb 指令可用于 ARMv6T2 及更高版本。

此指令无 16 位 Thumb 版本。

示例

    CLZ     r4,r9
    CLZNE   r2,r3

先使用 CLZ Thumb-2 指令,然后利用生成的 Rd 值左移 Rm,从而标准化寄存器 Rm 的值。 使用 MOVS,而不是 MOV,将 Rm 为零的情况标记出来:

    CLZ r5, r9
    MOVS r9, r9, LSL r5
Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IC
Non-Confidential