M4内核的单片机是否有字节首尾颠倒顺序的快速方法?
M4内核的单片机是否有字节首尾颠倒顺序的快速方法? 空间换时间也可以,,flash用不完。 本帖最后由 Himem 于 2024-4-2 19:56 编辑类似bswap,有rev指令
gcc的话直接__builtin_bswap64函数就行 查表吧,不知道是否比rev来的快 Himem 发表于 2024-4-2 19:53
类似bswap,有rev指令
(引用自2楼)
还有这等指令。。。。那是方便多了呀,我这还准备手搓转换函数进行转换{:lol:} 单指令可以完成 ccstc 发表于 2024-4-2 20:01
查表吧,不知道是否比rev来的快
(引用自3楼)
REV是单周期指令…… 用高级语言建议少用汇编,虽然确实好用;
谁知道那会换个芯片还要找很多替换胡地方 查表{:lol:}{:lol:} 查表呗,做个256字节的表,完事 Himem 发表于 2024-4-2 19:53
类似bswap,有rev指令
(引用自2楼)
查了一下REV是交换字节顺序啊。。。 RBIT才是交换比特顺序,但又是32位的,还得再移位
tomzbj 发表于 2024-4-3 09:23
查了一下REV是交换字节顺序啊。。。 RBIT才是交换比特顺序,但又是32位的,还得再移位
...
(引用自10楼)
我读lz题目理解是int64大小端交换? Himem 发表于 2024-4-3 09:29
我读lz题目理解是int64大小端交换?
(引用自11楼)
汗,那就不知道了,lz自己说明一下吧。。。 tomzbj 发表于 2024-4-3 09:23
查了一下REV是交换字节顺序啊。。。 RBIT才是交换比特顺序,但又是32位的,还得再移位
...
(引用自10楼)
移位也就一条指令一个时钟完事 Himem 发表于 2024-4-3 09:29
我读lz题目理解是int64大小端交换?
(引用自11楼)
他那0-7应该是表示字节中的各个位号,不是8个字节 mcu5i51 发表于 2024-4-3 08:53
用高级语言建议少用汇编,虽然确实好用;
谁知道那会换个芯片还要找很多替换胡地方 ...
(引用自7楼)
非常同意,除非用到解决性能瓶颈的地方,用这种指令,换个编译器或者换个单片机,可能就是灾难
页:
[1]