导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→刚学keil,请高手指教[求助]

* 74441: 刚学keil,请高手指教[求助]

   fishxu 
fishxu发表的帖子 

 刚学keil,请高手指教[求助]
keil中的c程序:
470:  while ((j   < rxdcount)&&(rxderr[j] == rxdprotocol[j])) //????
在编译成汇编后,寄存器改变了(见r7和0x07),运行后的结果与设计结果不符  

;编译后的汇编:
c:0x0350    e533     mov      a,0x33 ;j为33h单元
c:0x0352    c3       clr      c
c:0x0353    9541     subb     a,rxdcount(0x41) ;rxdcount(0x41)为一计数单元
c:0x0355    5018     jnc      c:036f
c:0x0357    af33     mov      r7,0x33    
c:0x0359    7442     mov      a,#rxdprotocol(0x42);rxdprotocol[j]数组定义在data段
c:0x035b    2f       add      a,r7
c:0x035c    f8       mov      r0,a
c:0x035d    e6       mov      a,@r0
c:0x035e    ff       mov      r7,a   ;数值保存于r7中?????
c:0x035f    ae33     mov      r6,0x33
c:0x0361    ee       mov      a,r6
c:0x0362    90065e   mov      dptr,#rxderr(0x065e);rxderr[j]数组定义在code段
c:0x0365    93       movc     a,@a+dptr
c:0x0366    fe       mov      r6,a
c:0x0367    ee       mov      a,r6
c:0x0368    b50704   cjne     a,0x07,c:036f  ;而此处由是与0x07h单元中的数比较???(本应与r7中的数比较)
c:.........略


是不是编译器的问题呀????


发表时间:2005年3月9日10:13:21

  
回复该帖

本主题共有 2 帖,分页:>>>>>该主题的所有内容[2]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  74596.[详细]估计是设置的问题
摘要:你在option for target ->C51的菜单中将Code Optimization 中的level改低一点,应该能解决。......(87字)
- [fenggou80][1041次] 2005年3月10日

[上一篇帖子]:需要单片机读写u盘源代码的请留email
[下一篇帖子]:有at91rm9200高手愿意兼职吗?已经移植好了ucos,需要完成at91rm9200各功能模块的