CLZ指令有什么用呢?

[复制链接]
18493|11
 楼主| quyifei 发表于 2013-6-13 20:30 | 显示全部楼层 |阅读模式
在ucos iii中有CLZ,该指令介绍如下

前导零计数指令 功能:CLZ(Count Leading Zeros)指令对Rm中值的高位(leading zeros)个数进行计数,结果放到Rd中。若源寄存器全为0,则结果为32。若[31]为1,则结果为0。

请问CLZ用在什么地方呢?
mybao 发表于 2013-6-13 20:45 | 显示全部楼层
数字信号处理之定点运算,别的基本用不着
john_lee 发表于 2013-6-13 20:56 | 显示全部楼层
以前的ucos2里面,有个256字节的表,名字忘了,是个位图查找表,用于查找最高优先级的,一次只能查找 8 位数据,超过 8 位可以分段组合查找。
clz 指令就是在CPU内实现了这个功能,它可以一次查找 32 位数据,对于 ucos 的位图表示法,实际上还需要加上 rbit 指令配合,使整个逻辑变成 ctz (Count Tailing Zero)才能适用。
cjhk 发表于 2013-6-13 21:58 | 显示全部楼层
这一块不是很了解诶    楼主  帮你顶一个   再看看别人的意见吧  顶一个
缥缈九哥 发表于 2013-6-13 23:16 | 显示全部楼层
我用上了。哈哈。usb_sbuf[3] = __clz(__rbit(~KEYvalue[0])) + 0x31;                // 取出按键号并转成ASCII码
把PA0到PA7转成ASCII的 0X31到0X83。
yhn1973 发表于 2013-6-14 09:14 | 显示全部楼层
浮点运算,可用于规格化浮点数
xiaoyuan_ly 发表于 2013-8-19 16:22 | 显示全部楼层
ucosii是软件实现CLZ,就是优先级查找,ucosiii是为了适应和高效使用带clz硬件指令的cpu。也就是说一个是软的,一个是硬件已集成指令,效率和速度就可以想象了
hkcj 发表于 2013-8-19 18:59 | 显示全部楼层
帮楼主  顶一个  看看别人的意见   这一块   了解的不是很多   先顶一个
myxiaonia 发表于 2013-8-20 08:52 | 显示全部楼层
缥缈九哥 发表于 2013-6-13 23:16
我用上了。哈哈。usb_sbuf[3] = __clz(__rbit(~KEYvalue[0])) + 0x31;                // 取出按键号并转成ASCII码
把PA0 ...

牛人。。。
myxiaonia 发表于 2013-8-20 08:54 | 显示全部楼层
还有个 快速确定某个为2的幂的数的指数,不需要从最低位开始,循环查找
是不是很快啊
ZRJ8951 发表于 2013-8-20 14:22 | 显示全部楼层
positron 发表于 2015-12-4 18:08 | 显示全部楼层
可以加速位图算法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:最小STM32开发板-攸米板淘宝: yifei-stm.taobao.com 博客: blog.sina.com.cn/yifeistm

29

主题

146

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部