⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dzqfft8.asm

📁 一个非常高效的基于TS101的8点fft代码,该代码实现8点复数FFT,入口数据按实部,虚部交替存放 FFT结果也按实部,虚部交替存放. 程序没有任何循环,也无须循转因子. 非常高效啊
💻 ASM
字号:

#define NGatesNum 1024

.section M1DATA;
.align 4;
.var fft8Result[16]; //order is re,im,re,im...

.section M2DATA;

.align 4;
.var fft8input[16]="fft8input.dat";//order is re,im,re,im...


.section M0CODE;

start: 

	
dzqFFT8:
		k0=fft8input;;
		j0=fft8Result;;
		r1:0=q[k0+=8];;
		r3:2=q[k0+=-4];;
		r5:4=q[k0+=8];;  //1st stage begin.
////////////////////////////////////////////////
////yr0=ReTx(0),yr1=ImTx(0);  xr0=ReTx(1),xr1=ImTx(1).
////yr4=ReTx(2),yr5=ImTx(2);  xr4=ReTx(3),xr5=ImTx(3).
////yr2=ReTx(4),yr3=ImTx(4);  xr2=ReTx(5),xr3=ImTx(5).
////yr6=ReTx(6),yr7=ImTx(6);  xr6=ReTx(7),xr7=ImTx(7).

		
		fr0=r0+r2,fr20=r0-r2;  r7:6=q[k0+=0];;				
		fr2=r1+r3,fr29=r1-r3;; //each time do 2  butterfly(but only real or imag).
		fr4=r4+r6,fr21=r4-r6;;
		fr5=r5+r7,fr28=r5-r7;;
		// 2nd stage begin.
		fr16=r0+r4,fr24=r0-r4;;
		fr17=r2+r5,fr25=r2-r5; xr15=0.70710678;; //xr15 can't be destroyed until dzqFFT8Finished.
		fr20=r20+r28,fr28=r20-r28;  xr18=xr16;;  //xr18 used for swap xr16 and yr17.
		fr29=r29+r21,fr21=r29-r21;  xr16=yr17;;//no Error!!!!
		yr17=xr18;; 
		xfr24=-r24;yr18=yr25;;//yr18 used for swap xr25 and yr25.////
		//the 3rd stage begin.
		//each time only 1 butterfly,but both real and imag.
		fr0=r16+r17,fr4=r16-r17; yr25=xr25;;//XFRe(0)=yr0,XFIm(0)=xr0;  XFRe(4)=yr4,
		xfr8=r21+r20,fr9=r21-r20;  xr25=yr18;; //xfr8=Ib2+Rb2,xfr9=Ib2-Rb2.
		xfr10=r28+r29,fr11=r28-r29; xr20=yr21;; //xfr10=Rd2+Id2,xfr11=Rd2-Id2. //now xr20=Ib1.
		fr2=r24+r25,fr6=r24-r25; xfr8=r8*r15; L[j0+=8]=r0;; //XFRe(2)=yr2,XFIm(2)=xr2; XFRe(6)=yr6...
		xfr21=r9*r15; L[j0+=-4]=r4;;														
		xfr6=-r6;xfr11=r11*r15;xr28=yr29;;// now XFIm(6)=xr6.
		xfr29=r10*r15;yr21=xr8;;  
		yr29=xr11;; 				   
		fr1=r20+r21,fr5=r20-r21; L[j0+=8]=r2;; //XFRe(1)=yr1,XFIm(1)=xr1; XFRe(5)=yr5,XFIm(5)=xr5.
		fr7=r28+r29,fr3=r28-r29; L[j0+=-10]=r6;; //XFRe(3)=yr3,XFIm(3)=xr3; XFRe(7)=yr7,XFIm(7)=xr7.
		L[j0+=8]=r1;;
		L[j0+=4]=r5;;
		L[j0+=-8]=r7;;
		L[j0+=0]=r3;;
		nop;;
				   
dzqFFT8Finished:				   							 	
		nop;;
		nop;;
		
		
		
		
dzqFFT8.end:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -