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

📄 scramble.asm

📁 基于ADSP-219x系列的时间抽取基2FFT代码
💻 ASM
字号:
/******************************************************************************
{      码位倒置子程序   
Calling Parameters
                Sequentially ordered input data in inputreal

        Return Values
                Scrambled input data in inplacereal

        Altered Registers
                I0,I4,M0,M4,AY1

        Altered Memory
                inplacereal
}
****************************************************************************/
#define   	M          128
#define   	N          8
#define   	L          16
#define     mod_value  0x0200 /*{Initialize constants}{to calculate correct mod_value, divide 2^16 by n}{n:the nubmer of the address to be reversed,n=log2N}*/

.EXTERN       inputreal;
.EXTERN       inputimag;
.EXTERN       inplacereal;
.EXTERN       inplaceimag;
.GLOBAL  	  scramble;

/* Program Code */
.section/pm program;
scramble:       I4=inputreal;		/*{I4-->sequentially ordered data from inputreal}*/
            	I0=0;	        	/*{I0-->scrambled data for inplacereal}*/
       	      	M4=1;
        	    M0=mod_value;   	/*{M0=modifier for reversing n bits}*/
             	L4=0;
        	    L0=0;
           	    CNTR = N;
        	    ENA BIT_REV;   	    /*{Enable bit-reversed outputs on DAG1}*/
        	    DO bit_rev_real UNTIL CE;
                  AY1=DM(I4,M4);	/*{Read sequentially ordered data}*/
bit_rev_real:     DM(I0,M0)=AY1;	/*{Write data in bit-reversed location}*/
                DIS BIT_REV; 
                
                I1=0;
				I2=inplacereal;
				M1=L;
				M2=L;
				CNTR = N;
                DO exchang1 UNTIL CE; /*write bit-reversed data to inplacereal */
			       AY1=DM(I1,M1);
exchang1:          DM(I2,M2)=AY1;
        	    
                I4=inputimag;		/*{I4-->sequentially ordered data from inputimag}*/
                I0=0;		        /*{I0-->bit-reversed data for inplaceimag}*/
                CNTR = N;
				ENA BIT_REV;
                DO bit_rev_imag UNTIL CE;
                   AY1=DM(I4,M4);	/*{Read sequentially ordered data}*/
bit_rev_imag:      DM(I0,M0)=AY1;	/*{Write data in bit-reversed location}*/
                DIS BIT_REV;    	/*{Disable bit-reverse}*/
				I1=0;
				I2=inplaceimag;
		        M1=L;
			    M2=L;
				CNTR = N;
                DO exchang2 UNTIL CE; /*write bit-reversed data to inplaceimag */
			       AY1=DM(I1,M1);
exchang2:          DM(I2,M2)=AY1;
        	    RTS;    	        /*{Return to calling program}*/

⌨️ 快捷键说明

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