[KungFu8位 MCU] 这款芯片的16位数据的乘法和除法怎么弄

[复制链接]
jiuri 发表于 2025-8-24 11:49 | 显示全部楼层 |阅读模式
哪位大侠有没有相关的子程序(kf8f2020)

最好是汇编的代码
谢谢
钟爱柳州 发表于 2025-8-25 08:47 | 显示全部楼层
C语言直接写乘除即可:
钟爱柳州 发表于 2025-8-25 08:47 | 显示全部楼层
long multiply_16bit(unsigned int a, unsigned int b);
int divide_16bit(int dividend, int divisor);

long product;
int quotient;

// Main Function
int main()
{
    unsigned int a = 1000;
    unsigned int b = 2000;
    int dividend = 10000;
    int divisor = 200;

    // 16位乘法
    product = multiply_16bit(a, b);
    printf("16位乘法结果: %u\n", product);

    // 16位除法
    quotient = divide_16bit(dividend, divisor);
    printf("16位除法结果: %d\n", quotient);

    while (1)
    {
    }
}

// 16位乘法函数
long multiply_16bit(unsigned int a, unsigned int b)
{
    return (unsigned long)a * b;
}

// 16位除法函数
int divide_16bit(int dividend, int divisor)
{
    if (divisor == 0)
    {
        // 处理除零错误
        return 0;
    }
    return dividend / divisor;
}
钟爱柳州 发表于 2025-8-25 08:50 | 显示全部楼层
汇编指令在lst文件中可以查看
 楼主| jiuri 发表于 2025-8-25 12:49 | 显示全部楼层
感谢回复
xch 发表于 2025-8-25 13:16 | 显示全部楼层
没乘除法指令。你得用加减法拼凑
cooldog123pp 发表于 2025-8-25 18:32 | 显示全部楼层
钟爱柳州 发表于 2025-8-25 08:47
long multiply_16bit(unsigned int a, unsigned int b);
int divide_16bit(int dividend, int divisor);

貌似这不是汇编吧,不过现在用汇编搞的话已经很少了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

310

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

44

主题

310

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部