怎样用汇编语言实现辛普森数字积分?
下面是C程序,哪位能帮忙搞个汇编版本的?只要有辛普森函数那部分就可以
/*-------复化辛普森求积公式---------*/
#include
#include
#include
#define N 100
/*-------将要被求积的函数------*/
double f(double x)
{
return 1.0/x; /* 根据你需要,自定义函数*/
}
/*---------辛普森函数---------*/
double simpson(double low,double high)
{
double h; /*定义小区间*/
double odds=0.0,evens=0.0; /*分为奇区间和偶区间*/
double x;
double area=0.0; /*最终结果保存在area中*/
int k;
h=(high-low)/N;
for(k=1;k
x=low+k*h;
odds+=f(x);
}
for(k=2;k
x=low+k*h;
evens+=f(x);
}
area=(high-low)/(N*3)*(f(low)+f(high)+4*odds+2*evens);
return area;
}
main()
{double lower,upper; /*定义积分上下限*/
double swap; /*用于交换上下限,当上限小于下限时*/
double area=0;
int ture=1;
do{printf("\n-----Interation by Simpson's method.-----\n ");
printf("Enter the lower and upper for interation:\n ");
scanf("%lf%lf",&lower,&upper);
if(upper < lower)
{swap=lower;lower=upper;upper=swap;}
printf("\nIntergrating f(x) for %lg to %lg\n",lower,upper);
area=simpson(lower,upper);
printf("Area=%lg\n",area);
printf("pass 1 to continue 0 to exit:");
scanf("%d",&ture);
}while(ture);
}
为啥不行?
嘿嘿,本来想给你写的,但我看了看,我不会那些浮点操作指令
在单片机下被惯坏了
郁闷,以后多向你学习!
LZ帅哥,不是忽悠你,反汇编绝对可以,我的VS2005卸了,不然我给你弄一下
呵呵
哎呀,大哥,帮忙啊!你就整一个吧,我急着用呢,就是浮点数这东西没有接触过。反汇编好像很长的