M3 的汇编指令格式问题

[复制链接]
2983|3
 楼主| seawwh 发表于 2010-12-11 10:22 | 显示全部楼层 |阅读模式
最近想在IAR环境下使用嵌入汇编,发现同一条指令可以下面三种格式,不知区别如何?

  __asm(" ror    r0, r0, r1   \n");
  __asm(" ror.w r0, r0,r1   \n");
  __asm(" rors   r0, r0,r1   \n");

经察看反汇编看1,2 两行相同4字节长度,3行的指令2字节长度,执行结果也是一样。
请同行帮忙看看。
airwill 发表于 2010-12-11 10:41 | 显示全部楼层
谁说是一样的呢?

第一, 第二倒确实是一样的 thumb2 指令, ror 和 ror.w 是一样的,  32 bit 指令 .w 就是这么定义的.
rors 则不同, 是 thumb 指令, 这条指令与上面的指令的不同之处, 除了长度 16 bit 外, 还影响状态寄存器.
sunligong 发表于 2010-12-11 10:51 | 显示全部楼层
高见啊
香水城 发表于 2010-12-11 13:40 | 显示全部楼层
哈哈,要多看书才好,不然要闹笑话,:D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

145

主题

368

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部