急切求助!改写一C程序为ARM汇编
这是我的一个程序里面需要改写为ARM汇编的一个函数,因为本身不太会ARM,又急需交作业,希望哪位仁兄能够好心帮助,不胜感激!(SinCos[][]为一头文件中读取的常数数组)
static void btfly(int c, int s, __int64 r, __int64 i, __int64 *x, __int64 *y)
{
*x = (((__int64)c)*r + ((__int64)s)*i)> > 31;
*y = (((__int64)c)*i - ((__int64)s)*r)> > 31;
return;
}
void my_fft(__int64 *x, __int64 *y, int dim)
{
int i,j,k,m,m1,m2;
int p,q;
__int64 a,b;
int ptr1, ptr2;
m = 1 < < dim;
q = m;
for(i=1; i <=dim; i++) {
p = q;
q /= 2;
for(j=1; j <=q; j++) {
for(k=p; k <=m; k+=p) {
ptr1 = k - p + j;
ptr2 = ptr1 + q;
a = x[ptr1-1] - x[ptr2-1];
b = y[ptr1-1] - y[ptr2-1];
x[ptr1-1] = x[ptr1-1] + x[ptr2-1];
y[ptr1-1] = y[ptr1-1] + y[ptr2-1];
btfly(SinCos[(9-dim)*(j-1)][0], SinCos[(9-dim)*(j-1)][1], a, b, &x[ptr2-1], &y[ptr2-1]);
}
}
}
j=1;
m1= m-1;
m2= m/2;
for(i=1; i <=m1; i++) {
if(i <j) {
a = x[j-1];
b = y[j-1];
x[j-1] = x[i-1];
y[j-1] = y[i-1];
x[i-1] = a;
y[i-1] = b;
}
k = m2;
while(k <j) {
j -= k;
k /= 2;
}
j += k;
}
}
发表时间:2006年5月19日19:10:16