[应用相关] 请问CLZ用在什么地方呢?

[复制链接]
 楼主| heweibig 发表于 2017-9-28 23:44 | 显示全部楼层 |阅读模式
在ucos iii中有CLZ,该指令介绍如下

前导零计数指令 功能:CLZ(Count Leading Zeros)指令对Rm中值的高位(leading zeros)个数进行计数,结果放到Rd中。若源寄存器全为0,则结果为32。若[31]为1,则结果为0。
lizye 发表于 2017-9-28 23:45 | 显示全部楼层

数字信号处理之定点运算,别的基本用不着
spark周 发表于 2017-9-28 23:46 | 显示全部楼层

以前的ucos2里面,有个256字节的表,名字忘了,是个位图查找表,用于查找最高优先级的,一次只能查找 8 位数据,超过 8 位可以分段组合查找。
zhaoxqi 发表于 2017-9-28 23:47 | 显示全部楼层

clz 指令就是在CPU内实现了这个功能,它可以一次查找 32 位数据,对于 ucos 的位图表示法,实际上还需要加上 rbit 指令配合,使整个逻辑变成 ctz (Count Tailing Zero)才能适用。
zhanghqi 发表于 2017-9-28 23:48 | 显示全部楼层

我用上了。哈哈。usb_sbuf[3] = __clz(__rbit(~KEYvalue[0])) + 0x31;                // 取出按键号并转成ASCII码
yszong 发表于 2017-9-28 23:49 | 显示全部楼层
把PA0到PA7转成ASCII的 0X31到0X83。
戈卫东 发表于 2017-9-29 04:54 | 显示全部楼层
可以做优先编码器,某些内核设计可以用到
dengdc 发表于 2017-9-29 23:50 | 显示全部楼层

浮点运算,可用于规格化浮点数
wuhany 发表于 2017-9-29 23:50 | 显示全部楼层

还有个 快速确定某个为2的幂的数的指数,不需要从最低位开始,循环查找
是不是很快啊
jiahy 发表于 2017-9-29 23:50 | 显示全部楼层

可以加速位图算法
lizye 发表于 2017-9-29 23:51 | 显示全部楼层

它实现优先编码器的功能,总有用得着的地方。
 楼主| heweibig 发表于 2017-9-29 23:52 | 显示全部楼层
哦,那我就知道怎么回事了,多谢大家,结贴了哈
戈卫东 发表于 2017-9-30 01:54 | 显示全部楼层
二姨妈家的发帖机器人都有1万分了,不容易啊。。。。。。
戈卫东 发表于 2017-9-30 02:05 | 显示全部楼层
感觉压力很大啊。。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

869

主题

13089

帖子

7

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

869

主题

13089

帖子

7

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