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

📄 fftasm2.asm

📁 用汇编实现的FFT 程序。基于ADI的DSP 实时处理程序
💻 ASM
字号:
//extern void fftasm2(int ,complex_fract16 x_fft[],complex_fract16 h_fft[],complex_fract16 yr_fft[]);
//P1,P4 -> x_fft  P2,P5 -> h_fft, P0,P3->yr_fft

 	   /*for(i=0;i<N;i++)
 	   {
	       yr_fft[i] = cmlt_fr16(x_fft[i],h_fft[i]);
 	       yr_fft[i].re <<=8;
 	       yr_fft[i].im <<=8;
 	   }*/
/*
   typedef struct 

   { 

      fract16 re; 

      fract16 im; 

   } complex_fract16;
*/

.section program;
.global  _fftasm2;
.align 8;
_fftasm2:
			[--SP] = (R7:4,P5:3);
			LC0 = R0;   //FOR INITIALIZE LCn
			P0 = [SP+40];
			R3 = [SP+40];
			P1 = R1;   //ADDRESS OF x_fft
			R1 +=2;
			R3+=2;
			P2 = R2;   //H_FFT
			R2 +=2;
			
			P3 = R3;
			P4 = R1;
			P5 = R2;
			nop;nop;
			
			LSETUP(_FFT_ASM2_START,_FFT_ASM2_END) LC0;
_FFT_ASM2_START:
			R0.L = W[P1];
			P1+=4;
			//R0.L = R0.L<<4;//
			
			R1.L = W[P2];
			P2+=4;		
		//	R1.L = R1.L<<4;//
				
			R3.L = R0.L*R1.L;
			R0.H = W[P4];
			P4+=4;
		//	R0.H = R0.H<<4;
			R4.H = R0.H*R1.L;
			R1.H = W[P5];
	//		R1.H = R1.H<<4;
			P5+=4;
			R3.H = R0.H*R1.H;
			R4.L = R0.L*R1.H;
			
			R5.L = R3.L-R3.H(S);
			R5.H = R4.L+R4.H(S);
			R5.L=R5.L<<4;
			R5.H=R5.H<<4;
			W[P0]= R5.L;
			P0+=4;
			W[P3] = R5.H;
			P3+=4;
_FFT_ASM2_END:
			NOP;
		(R7:4,P5:3)=[SP++];
		RTS;
._fftasm2.end:

⌨️ 快捷键说明

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