当前位置:技术中心首页 >> 编程相关 >> 在汇编中使用浮点运算的 DEMO
在汇编中使用浮点运算的 DEMO
2008-02-10 13:09:15  作者:  来源:互联网  浏览次数:5  文字大小:【】【】【
  •   /* 通过FPU运算完成 64 位整数加法运算 */ #include struct dlong { unsigned long low; unsigned long hi;}; struct dlong * fputest (struct dlong * a, long b){ struct dlong _a = *a; asm { FI ...
/* 通过FPU运算完成 64 位整数加法运算 */

#include

struct dlong {
 unsigned long low;
 unsigned long hi;
};

struct dlong * fputest (struct dlong * a, long b)
{
 struct dlong _a = *a;

 asm {
   FINIT     /* 初始化 FPU */
   FILD  _a  /* 装入长整数 */
   FIADD b   /* 进行整数加法运算 */
   FISTP _a  /* 计算结果出栈 */
 }

 *a = _a;
 return (a);
}

int main (void)
{
 struct dlong dla;

 printf ("Hello\n");

 dla.hi  = 1;
 dla.low = 2;
 printf ("%08lx %08lx\n", dla.hi, dla.low);
 fputest (&dla, -8);
 printf ("%08lx %08lx\n", dla.hi, dla.low);

 getchar ();
 return (0);
}

运行结果:
Hello
00000001 00000002
00000000 fffffffa


0

顶一下

0

踩一下
相关文章
内页链接 | 友情链接 | 诚聘英才 | 关于我们 | 版权声明 | 联系我们 | 网站公告 | 广告服务
回天数据恢复中心 版权所有
浙江总部:杭州市文三路388号钱江科技大厦10楼1016室 (学院路和文三路交汇路口颐高数码广场),东方通信大厦旁边.
地址 :上海市埔东新区张扬路628弄东明广场2号楼23楼C室(太平洋三期电脑城正对面,百脑会电脑城左侧)
全国服务热线 :400-889-1122(全国),0571-85121630(杭州),021-28877655(上海) 传真 :0571-56771013