乘法错误的问题

2019-03-24 11:33发布


#include "MSP430FR5739.h"
int main( void )
{
  unsigned char value1,value2;
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  //载入第一个操作数 3.jpg


  MPY=0X1234;
  //载入第二个操作数
  OP2=0X5678;
  //有符号乘加运算的两个操作数
  value1=0x12;
  value2=0x96;
  //判断符号扩展位
  if(value1>=0x80)
    MACS=0xff00|value1;
  else
    MACS=value1;
  if(value2>=0x80)
    OP2=0XFF00|value2;
  else
    OP2=value2;
  //OP2载入操作数后,MACS与OP2相乘后的结果再与之前的RESLO和RESHI中的值相加
  __bis_SR_register(LPM4_bits);
  //return 0;
}
我参考《MCU工程师炼成记》写了个乘法程序,如上,发现问题。
0x1234*0x5678=0x6260060.

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
chenbingjy
1楼-- · 2019-03-24 18:13
 精彩回答 2  元偷偷看……
EETUX
2楼-- · 2019-03-24 19:38
< :TI_MSP430_内容页_SA7 --> 0x625f8ec=0x6260060-0x12*(0xffff-0xff96+1)
我猜测 0xff96是个16位有符号数,是个负数.
chenbingjy
3楼-- · 2019-03-25 00:48
谢谢!茅塞顿开!

一周热门 更多>

相关问题

    相关文章