单片机汇编语言乘法转化为移位和加法

希望有大神写个8位乘16位和16位乘16位的汇编程序让我理解这样的转化方法

2个回答

给个C代码给你参考吧
int mul(int X8, int Y16)
{
int result = 0;
int i;

for (i = 0; i < 8; i++)
{
    if (X8 & 0x01)
    {
        result += Y16;
    }

    X8 >>= 1;
    Y16 <<= 1;
}

}

int mul(int X8, int Y16)
{
int result = 0;
int i;

for (i = 0; i < 8; i++)
{
    if (X8 & 0x01)
    {
        result += Y16;
    }

    X8 >>= 1;
    Y16 <<= 1;
}

return result;

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!