打印

仿真中的问题

[复制链接]
1334|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hwrhys|  楼主 | 2012-7-12 16:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   我的问题如下: 用得是PICC C编译器,

if( T_value < 15)


{


NOP();        
在此设断点,值大于15时,也停了,怪了 ???


NOP();


}



看汇编清单如下:
;TMP006_1936.c: 1236: if( T_value < 15)
3935 0D72 300F   movlw 15
3936 0D73 0235   subwf _T_value^(0+128),w ;volatile
3937 0D74 1803   skipnc
3938 0D75 2D78   goto l11907
3939
3940 ;TMP006_1936.c: 1237: {
3941 ;TMP006_1936.c: 1238: _nop();
3942 0D76 0000       nop
3943
3944 ;TMP006_1936.c: 1239: _nop();
3945 0D77 0000       nop
3946 0D78 l11907:
3947
3948 ;TMP006_1936.c: 1240: }
3949 ;TMP006_1936.c: 1243: if( *( (char*)& T_long_value +2 ) == 0xff)
3950 0D78 0022     movlb 2 ; select bank2
3951 0D79 0822     movf (_T_long_value^(0+256)+2),w ;volatile
3952 0D7A 3AFF   xorlw 255
3953 0D7B 1D03   skipz
3954 0D7C 2D83   goto l2048

也看不出什么问题呀,
但仔细观察发现:断点停止时,PC指针的位置是:0X0D79,这不是NOP指令的位置呀,怎么回事 ??????
   请各位老师给予解答为盼。   


沙发
hwrhys|  楼主 | 2012-7-13 14:51 | 只看该作者
问题解决了,居然和变量的BANK位置安排有关,调整了变量在BANKX的位置, 断点又能正常停止了 !!!!!!!!!!!!!         
真是没想到 !!!!!  还有这种事  !!!!!! ( 在断点不正常时,编译器也不报错,) 回想起来,以前搞C18时,也遇到过类似的问题。

使用特权

评论回复
板凳
XIEYUANBIN| | 2012-7-13 21:26 | 只看该作者
你什么编译器,现在新的编译器都不需要去关心BANK的问题了,除非你用绝对定位 比如说
unsigned char TEMP @0x70
这样的定义

使用特权

评论回复
地板
hk10000| | 2013-4-8 19:47 | 只看该作者
领教。。。。。。。。。。

使用特权

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

本版积分规则

5

主题

50

帖子

0

粉丝