4.4.5. CLZ

计算前导零数目。

语法

CLZ{cond} Rd, Rm

其中:

cond

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

Rd

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

Rm

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

用法

CLZ 指令可计算 Rm 中的值的前导零的数目,并会将结果存入 Rd。如果不设置源寄存器中的位,则结果为 32;如果设置位 31,则结果将为零。

条件标记

此指令不更改标记。

体系结构

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

此 32 位 Thumb 指令可用于 ARMv6T2 和 ARMv7。

此指令无 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-2007 ARM Limited. All rights reserved. ARM DUI 0204HC
Non-Confidential