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

如何在内嵌汇编中将两个 int 型的数乘法运算出的结果保留小数

eternuii 发布于 2014-11-25 11:52, 4308 次点击
rt如何在内嵌汇编中将两个int型的数乘法运算出的结果保留小数
10 回复
#2
zklhp2014-11-25 12:11
int数相乘还是int型 哪来的小数。。
#3
hu9jj2014-11-25 19:07
楼主可能说的是除法吧?
#4
wp2319572014-11-26 13:22
程序代码:

int main(int argc, char* argv[])
{
    int a=1199;
    int b=3;
    double c=0.0;
    _asm
    {
        fld   a;
        fdiv  b;
        fstp  qword ptr c;

    }
    printf("结果为%.2lf\n",c);
    return 0;
}
#5
eternuii2014-11-26 15:07
回复 3 楼 hu9jj
是嗒
#6
eternuii2014-11-26 15:10
回复 4 楼 wp231957
谢谢版主回复😊  我去试一下~
#7
eternuii2014-11-26 15:14
回复 2 楼 zklhp
😂写错了  不好意思。。。嘿嘿
#8
eternuii2014-11-26 16:15
回复 4 楼 wp231957
版主问一下 为什么打印c不显示正确结果。。。出来的是0.00
另外 这个浮点数可以放进eax么 还是有什么专门放float的寄存器???
#9
wp2319572014-11-26 16:28
有专门的浮点寄存器
不能放到EAX中

至于0.0的问题   我这里用vs2010是没问题的
不知你用的是神马
#10
eternuii2014-11-26 16:29
回复 9 楼 wp231957
嗯 谢谢回复 我去查下寄存器的问题。。  我用的visual c++ 2010.。。
#11
eternuii2014-11-26 20:12
程序代码:
          fild a; //a,b为有符号数
        fidiv b;
        fstp qword ptr c;

        push dword ptr c+4;
        push dword ptr c;
        lea eax, message3;
        push eax;
        call printf;
        add esp, 12;
1