打印
[ARM入门]

怎么用ARM指令编程实现一个字数据的高半字与低半字的互换?

[复制链接]
2535|9
手机看帖
扫描二维码
随时随地手机跟帖
沙发
aozima| | 2015-4-5 23:26 | 只看该作者
用C写出来,然后看反汇编。不用自己想破脑了。

使用特权

评论回复
板凳
TransferTech|  楼主 | 2015-4-6 15:02 | 只看该作者
aozima 发表于 2015-4-5 23:26
用C写出来,然后看反汇编。不用自己想破脑了。

非常感谢,我试试

使用特权

评论回复
地板
myxiaonia| | 2015-4-7 08:14 | 只看该作者
这个是有指令的,但是一般很难会从c编译优化得到,需要插入汇编
cm系列有个cm_instr.h文件,包含这些优化函数

使用特权

评论回复
5
bald| | 2015-4-8 12:00 | 只看该作者
mov r0,r0,rrx 16

使用特权

评论回复
6
TransferTech|  楼主 | 2015-4-9 21:38 | 只看该作者
myxiaonia 发表于 2015-4-7 08:14
这个是有指令的,但是一般很难会从c编译优化得到,需要插入汇编
cm系列有个cm_instr.h文件,包含这些优化函 ...

谢谢了,我已经解决了,用循环右移指令ROR就可以了

使用特权

评论回复
7
TransferTech|  楼主 | 2015-4-9 21:43 | 只看该作者

ror也是可以的吧

使用特权

评论回复
8
myxiaonia| | 2015-4-10 09:18 | 只看该作者
TransferTech 发表于 2015-4-9 21:38
谢谢了,我已经解决了,用循环右移指令ROR就可以了

哈哈 不错 思路巧妙  不过确实有直接半字交换的指令 好像是rev16吧  不过用ror更巧

使用特权

评论回复
9
bald| | 2015-4-10 16:45 | 只看该作者

**误差,ror是正确的。

使用特权

评论回复
10
myxiaonia| | 2015-4-13 00:51 | 只看该作者
myxiaonia 发表于 2015-4-10 09:18
哈哈 不错 思路巧妙  不过确实有直接半字交换的指令 好像是rev16吧  不过用ror更巧 ...

搞错了  rev16完成的功能和lz的要求是不一样的

使用特权

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

本版积分规则

1

主题

4

帖子

0

粉丝