fbwcpu 发表于 2024-4-2 19:16:35

M4内核的单片机是否有字节首尾颠倒顺序的快速方法?

M4内核的单片机是否有字节首尾颠倒顺序的快速方法? 空间换时间也可以,,flash用不完。

Himem 发表于 2024-4-2 19:53:10

本帖最后由 Himem 于 2024-4-2 19:56 编辑

类似bswap,有rev指令



gcc的话直接__builtin_bswap64函数就行

ccstc 发表于 2024-4-2 20:01:38

查表吧,不知道是否比rev来的快

fbwcpu 发表于 2024-4-2 20:03:11

Himem 发表于 2024-4-2 19:53
类似bswap,有rev指令


(引用自2楼)

还有这等指令。。。。那是方便多了呀,我这还准备手搓转换函数进行转换{:lol:}

tang_qianfeng 发表于 2024-4-2 20:34:58

单指令可以完成

gzhuli 发表于 2024-4-2 23:33:39

ccstc 发表于 2024-4-2 20:01
查表吧,不知道是否比rev来的快
(引用自3楼)

REV是单周期指令……

mcu5i51 发表于 2024-4-3 08:53:20

用高级语言建议少用汇编,虽然确实好用;
谁知道那会换个芯片还要找很多替换胡地方

lsfsxfljj 发表于 2024-4-3 09:10:54

查表{:lol:}{:lol:}

tomzbj 发表于 2024-4-3 09:18:34

查表呗,做个256字节的表,完事

tomzbj 发表于 2024-4-3 09:23:03

Himem 发表于 2024-4-2 19:53
类似bswap,有rev指令


(引用自2楼)

查了一下REV是交换字节顺序啊。。。 RBIT才是交换比特顺序,但又是32位的,还得再移位

Himem 发表于 2024-4-3 09:29:25

tomzbj 发表于 2024-4-3 09:23
查了一下REV是交换字节顺序啊。。。 RBIT才是交换比特顺序,但又是32位的,还得再移位
...
(引用自10楼)

我读lz题目理解是int64大小端交换?

tomzbj 发表于 2024-4-3 09:37:43

Himem 发表于 2024-4-3 09:29
我读lz题目理解是int64大小端交换?
(引用自11楼)

汗,那就不知道了,lz自己说明一下吧。。。

modbus 发表于 2024-4-3 11:21:40

tomzbj 发表于 2024-4-3 09:23
查了一下REV是交换字节顺序啊。。。 RBIT才是交换比特顺序,但又是32位的,还得再移位
...
(引用自10楼)

移位也就一条指令一个时钟完事

modbus 发表于 2024-4-3 11:22:55

Himem 发表于 2024-4-3 09:29
我读lz题目理解是int64大小端交换?
(引用自11楼)

他那0-7应该是表示字节中的各个位号,不是8个字节

了无 发表于 2024-4-3 11:33:40

mcu5i51 发表于 2024-4-3 08:53
用高级语言建议少用汇编,虽然确实好用;
谁知道那会换个芯片还要找很多替换胡地方 ...
(引用自7楼)

非常同意,除非用到解决性能瓶颈的地方,用这种指令,换个编译器或者换个单片机,可能就是灾难
页: [1]
查看完整版本: M4内核的单片机是否有字节首尾颠倒顺序的快速方法?