#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
踩一下