注册 登录
编程论坛 汇编论坛

imul 问题

lgjandhch 发布于 2009-08-16 09:57, 946 次点击
在C中有如下一段汇编代码  看了很多资料  知道imul是无符号乘法  猜想可能是计算x*y  但具体过程也不太清楚  请高手指点指点
static __inline int MULSHIFT32(int x, int y)  //计算x*y???   
{
    __asm {
                mov             eax, x
            imul        y
            mov         eax, edx
            }
}
1 回复
#2
东海一鱼2009-08-16 15:58
mul是无符号乘法。imul是带符号位乘法。

32位乘法结果是低位保存在eax,高位保存在edx。

上面的结果舍去了低位,仅返回了高位结果和符号位。
1