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

📄 sin.asm

📁 C5000系列DSP上实现正弦波发生器的源代码
💻 ASM
字号:
			.mmregs
			.def sinx , d_xs , d_sinx
sinx:			
			.data
table_s     .word 0x01C7
            .word 0x030B
            .word 0x0666
            .word 0x1556
d_coef_s    .usect "coef_s" , 4
d_xs        .usect "sin_vars" , 1
d_squr_xs   .usect "sin_vars" , 1
d_temp_s    .usect "sin_vars" , 1
d_sinx      .usect "sin_vars" , 1
c_1_s       .usect "sin_vars" , 1
            .text
            SSBX FRCT
            STM #d_coef_s , AR5
            RPT #3
            MVPD #table_s , *AR5+
            STM #d_coef_s , AR3
            STM #d_xs , AR2
            STM #c_1_s , AR4
            ST #0x7fff , c_1_s
            SQUR *AR2+ , A
            ST A , *AR2         ;A(31..16)=>*AR2 ; AR2->d_squr_xs
            ||LD *AR4 , B       ;B<=1
            MASR *AR2+ , *AR3+ , B , A ;(1-x^2/72)=>A ; T<=*AR2(x^2) ; AR2->d_temp_s  with rounding
            MPYA A                     ;x^2 * (1-x^2/72)=>A
            STH A ,*AR2         ;A(31..16)=>d_temp_s      			
            MASR *AR2- , *AR3+ , B , A ;(1-1/42*x^2(1-x^2/72))=>A with rounding ; T<=*(d_temp_s) ; AR2->d_squr_s 
            MPYA *AR2+          ;B<= A(31..16) * x^2 AR2->d_temp_s
            ST B ,*AR2          ;B>>16=>@d_temp_s
            ||LD *AR4, B        ;B<=1
            MASR *AR2- , *AR3+ , B ,A ;(1-x^2/20*(1-x^2/42(1-x^2/72)))=>A with rounding
                                      ;AR2->x^2
            MPYA  *AR2+        ;A(31..16)*x^2=>B , AR2->d_temp_s
            ST B , *AR2         ;B(31..16)=>*(d_temp_s)
            ||LD *AR4 ,B        ;B<=1
            MASR *AR2- , *AR3+ , B ,A ;last compute ;T<=@d_temp_s
            MPYA d_xs           ;B<=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))
            STH B ,d_sinx
            RET
            
                
            

⌨️ 快捷键说明

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