打印
[应用相关]

CLZ用在什么地方

[复制链接]
2604|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
heweibig|  楼主 | 2019-1-23 11:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在ucos iii中有CLZ,该指令介绍如下

前导零计数指令 功能:CLZ(Count Leading Zeros)指令对Rm中值的高位(leading zeros)个数进行计数,结果放到Rd中。若源寄存器全为0,则结果为32。若[31]为1,则结果为0。
沙发
lizye| | 2019-1-23 11:45 | 只看该作者
数字信号处理之定点运算,别的基本用不着

使用特权

评论回复
板凳
spark周| | 2019-1-23 11:50 | 只看该作者
以前的ucos2里面,有个256字节的表,名字忘了,是个位图查找表,用于查找最高优先级的,一次只能查找 8 位数据,超过 8 位可以分段组合查找。

使用特权

评论回复
地板
mmuuss586| | 2019-1-23 11:51 | 只看该作者

使用特权

评论回复
5
zhaoxqi| | 2019-1-23 11:52 | 只看该作者
clz 指令就是在CPU内实现了这个功能,它可以一次查找 32 位数据,对于 ucos 的位图表示法,实际上还需要加上 rbit 指令配合,使整个逻辑变成 ctz (Count Tailing Zero)才能适用。

使用特权

评论回复
6
zhanghqi| | 2019-1-23 11:57 | 只看该作者
我用上了。哈哈。usb_sbuf[3] = __clz(__rbit(~KEYvalue[0])) + 0x31;                // 取出按键号并转成ASCII码

使用特权

评论回复
7
yszong| | 2019-1-23 12:00 | 只看该作者
把PA0到PA7转成ASCII的 0X31到0X83。

使用特权

评论回复
8
spark周| | 2019-1-23 12:03 | 只看该作者
可以做优先编码器,某些内核设计可以用到

使用特权

评论回复
9
dengdc| | 2019-1-23 12:07 | 只看该作者
浮点运算,可用于规格化浮点数

使用特权

评论回复
10
wuhany| | 2019-1-23 12:09 | 只看该作者

还有个 快速确定某个为2的幂的数的指数,不需要从最低位开始,循环查找
是不是很快啊

使用特权

评论回复
11
jiahy| | 2019-1-23 12:12 | 只看该作者
可以加速位图算法

使用特权

评论回复
12
lizye| | 2019-1-23 12:16 | 只看该作者
它实现优先编码器的功能,总有用得着的地方。

使用特权

评论回复
13
heweibig|  楼主 | 2019-1-23 12:20 | 只看该作者
哦,那我就知道怎么回事了,多谢大家,结贴了哈

使用特权

评论回复
14
heisexingqisi| | 2019-1-23 14:51 | 只看该作者
还没用过呢,多谢大家的讨论,让我也懂了。

使用特权

评论回复
15
guanjiaer| | 2019-2-16 16:57 | 只看该作者
这个是汇编语言吗

使用特权

评论回复
16
磨砂| | 2019-2-17 13:35 | 只看该作者
这个算是专用的函数吗

使用特权

评论回复
17
yuyhyty6| | 2019-2-17 16:00 | 只看该作者
没用过这个指令,学习下。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

869

主题

13089

帖子

7

粉丝