小问题

wangyf0351   2008-1-17 03:12 楼主
LT FTM             ;FTM=37749(10进制)  (2407的)
MPY F_MOUD   ;F_MOUD=800

结果PREG的值是FEACCDA0
而正确的结果应该是01CCCDA0啊

请问这是为什么?

回复评论 (3)

可能是按无符号数计算的。
前面加一句
  CLRC   SXM
点赞  2008-1-17 04:36
我的程序中有这这条
语句啊,结果还是这样的,不知为什么
点赞  2008-1-17 06:18
问题解决了!
原因是这样的
MPY执行的是有符号的乘法操作
也就是说37749被当成了-27787
这样-27787*800=0xFEACCDA0
我把MPY换成MPYU就行了
点赞  2008-1-18 01:20
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复