打印

程序问题请教!

[复制链接]
1468|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jlgcumt|  楼主 | 2012-7-20 09:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
UINT16 Cmp(UINT16 *a,UINT16 *B)
  {
     UINT16 Result = 0;

      if( a[5] == b[5] )     // 请问这句话有什么问题呀
       Result = 0xffff;

     return Result;
  }
  上面那句话在单步仿真的时候有时候会自动跑进汇编里面,导致Result = 0xffff;不执行
是哪出问题了吗。
  堆栈不够还是别的什么原因?
汇编语言是类似于下面的:
MOVL XR4,*-SP[4];

相关帖子

沙发
haohaoren136| | 2012-7-21 11:51 | 只看该作者
:(

使用特权

评论回复
板凳
airwill| | 2012-7-22 09:26 | 只看该作者
可能是编译器优化打乱了指令和源程序的直接对应关系导致的。
继续跟踪,最终不会影响执行结果

使用特权

评论回复
地板
jlgcumt|  楼主 | 2012-8-25 18:53 | 只看该作者
3# airwill 呵呵,程序没问题,应为刚开始运行时都把程序搬到RAM里了,导致汇编的程序跟c程序对应不上。

使用特权

评论回复
5
uuniao| | 2012-8-29 08:48 | 只看该作者
:)

使用特权

评论回复
6
wang1979| | 2012-8-29 17:17 | 只看该作者
应该语法上没有问题,你可以吧优化选项关闭,仿真调试一下试试!

使用特权

评论回复
7
syp_hust| | 2012-9-2 17:32 | 只看该作者
在函数中传地址操作也经常出问题, 空间足够的境况,多开辟两个变量附个值比较试试看

使用特权

评论回复
8
永恒之旅| | 2012-10-23 21:46 | 只看该作者
UINT16 Cmp(UINT16 *a,UINT16 *B)
你确定参数是 UINT16* B 而不是 小写的 b 。

使用特权

评论回复
9
永恒之旅| | 2012-10-23 21:47 | 只看该作者
UINT16 Cmp(UINT16 *a,UINT16 *B)
你确定参数是 UINT16* B 而不是 小写的 b 。

使用特权

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

本版积分规则

个人签名:善攻者,动于九天之上,善守者,藏于九地之下!

183

主题

733

帖子

4

粉丝