打印

thumb指令集请教

[复制链接]
1845|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mybao|  楼主 | 2012-2-22 20:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用cortex-m3,编译时发现:sub              r7,r4,r3
指令长度是32bit,这个应该不是thumb2指令集啊,为啥是32bit,加上“.n”强制为16bit,编译不过。

还有,指令"IT"有用吗,条件执行都是在指令后在跟个条件,比如“MOVGT”,"IT"指令还有啥用?
沙发
airwill| | 2012-2-22 21:13 | 只看该作者
sub              r7,r4,r3  16位指令不支持三个寄存器的操作数

IT 在短分支代码中有效, 可以避免分支的代码预取导致打断流水线.

使用特权

评论回复
板凳
mybao|  楼主 | 2012-2-22 21:30 | 只看该作者
谢谢2楼,我都是直接用“MOVGT”这样的条件指令,跟ARM9一样,没用到"IT"指令,

举个例子:
ITTE NE  
ANDNE R0, R0, R1
ADDSNE R2, R2, #1
MOVEQ R2, R3
上面的,“ITTE NE”不是必须的吧,去掉也可以,岂不是去掉 “ITTE NE”,只要三个周期,加上,还多了一个周期?

使用特权

评论回复
地板
mybao|  楼主 | 2012-2-22 21:42 | 只看该作者
cortex-m0爆弱了,sub r1,r1,#4或者sub r1,r1,r2
居然编译不过。

使用特权

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

本版积分规则

85

主题

759

帖子

3

粉丝