打印

大家帮我看下ST的 cosmic编译是咋回事啊,芯片是stm8s103f2

[复制链接]
1851|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhongwei|  楼主 | 2011-4-29 15:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zhongwei 于 2011-4-29 16:10 编辑

(
严重声明:不好意思,我看错啦。。。。人家这个 cosmic是非常智能的啦,,,,  做了个6次右移位,来代替一个除以64(0x40)除法运算。。。
)
我想把一个常数赋值给一个除数:
temp16=((24L*2308)/36)/24 ;
speed=SpeedAd/temp16;
这是.ls文件,它把temp16 算成了6(应该是64):
1471                     ; 656 temp16=((24L*2308)/36)/24 ;
1472                     ; 657 speed=SpeedAd/temp16;
1473  0320 be56           ldw x,_SpeedAd
1474  0322 a606           ld a,#6
1475  0324               L45:
1476  0324 54             srlw x
1477  0325 4a             dec a
1478  0326 26fc           jrne L45
1479  0328 01             rrwa x,a
1480  0329 b75d           ld _speed,a

如果我把24L改成25L,temp16数值就准确了:
temp16=((25L*2308)/36)/24 ;
speed=SpeedAd/temp16;

1471                     ; 656 temp16=((25L*2308)/36)/24 ;
1472                     ; 657 speed=SpeedAd/temp16;
1473  0320 be56           ldw x,_SpeedAd
1474  0322 90ae0042       ldw y,#66
1475  0326 65             divw x,y
1476  0327 01             rrwa x,a
1477  0328 b75d           ld _speed,a

各位,这是怎么回事呢?我写的格式有问题吗
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:gotomcu@126.com

17

主题

69

帖子

0

粉丝