IAR 编译cc 2530 C代码生产的反汇编代码疑问?

2019-07-26 15:06发布

本帖最后由 chenjiancan 于 2015-3-12 15:26 编辑

各位好:   我使用的开发环境是 IAR for 8051 8.30.3 , 在调试 CC2530F256 如下代码的时候,观察到的反汇编指令如图:
新版 新版
// DI 定义为 P1_1                                                

右边汇编代码显示,一个左移位指令,和赋值语句, 用了这么多条指令,而且调试结果显示 DI = CY 这个赋值不成功(CY=1,但是赋值之后DI=0)
但是我使用 IAR for 8.10 重新测试这段代码发现,如下图, 明显效果比较好。 测试的时候 优化等级都为None。

请问,这是什么问题,有解决的办法吗?  
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
gaoyang9992006
1楼-- · 2019-07-27 07:49
 精彩回答 2  元偷偷看……
chenjiancan
2楼-- · 2019-07-27 10:34
gaoyang9992006 发表于 2015-3-12 15:04
我刚刚下载完了EW8051-9103-Autorun,一会儿安装测试,你把文件传来。

ok
mintspring
3楼-- · 2019-07-27 12:15
楼主,搞好了,不过我不知道怎么看汇编代码啊,我好久没有用这个了。
mintspring
4楼-- · 2019-07-27 14:51
教教我白,我看你们讨论半天了,来个帖子讲讲如何看IAR的反汇编代码。
gaoyang9992006
5楼-- · 2019-07-27 16:03
                 cmd<<=1;                //先发高      
      000012   EE           MOV     A,R6
      000013   C3           CLR     C
      000014   33           RLC     A
      000015   FE           MOV     R6,A
    112                  DI=CY;                               //取最高位               
      000016   A2D7         MOV     C,0xd0.7
      000018   E4           CLR     A
      000019   33           RLC     A
      00001A   F8           MOV     R0,A
      00001B   A2D7         MOV     C,0xd0.7
      00001D   9291         MOV     0x90.1,C
    113                  asm("NOP");
      00001F   00           NOP
    114                  DCKI=1;                                 //时钟下降沿,数据被传输
      000020   D290         SETB    0x90.0
    115                  cmd=cmd<<1;                         //先发高位       
      000022   EE           MOV     A,R6
      000023   C3           CLR     C
      000024   33           RLC     A
      000025   FE           MOV     R6,A
    116                  DI=CY;                               //取最高位       
gaoyang9992006
6楼-- · 2019-07-27 19:36
 精彩回答 2  元偷偷看……

一周热门 更多>