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

📄 iir32_mac.s.list

📁 freescale MAC DSP的算法库(FFT
💻 LIST
📖 第 1 页 / 共 2 页
字号:
                                                                              ;-=output+=*pCurHistory--*(*pCurCoef++);=-
0x0000007e: 2624                                move.l       -(a4),d3         ; 			                          -=Getting next current element of history buffer=-
0x00000080: a89b4ac3                            mac.l        d3,d4,<<,(a3)+,d4 ;                                       -=First MAC and getting next current coefficient=-
                                                                              ;-=output+=*pCurHistory--*(*pCurCoef++);=-
0x00000084: 2624                                move.l       -(a4),d3         ;                                          -=Getting next current element of history buffer=-
0x00000086: a89b4ac3                            mac.l        d3,d4,<<,(a3)+,d4 ;                                        -=Second MAC and getting next current coefficient=-
0x0000008a: 5282                                addq.l       #1,d2            ;                                          -=Incrementing "k"=-
0x0000008c: 60ea                                bra          .FORk2           ; 			}
                             .ENDFORk2                                        ; 		}
                                                                              ;---== End of cycle of getting Y[i] ==---
0x0000008e: a187                                move.l       acc,d7           ; 		*pCurY++=output;                -=Moving accumulator to general register=-
0x00000090: 20c7                                move.l       d7,(a0)+         ;                                          -=Store Y[i]=-
0x00000092: 5281                                addq.l       #1,d1            ;                                          -=Incrementing "i"=-
0x00000094: 608c                                bra          .FORi1           ;                                          -=Jumping to .FORi1=-
                             .ENDFORi1                                        ; 	}
                             ;---====== End of cycle Y[1]..Y[N-1] ======---
                             ;---====== Begin of cycle of getting Y[N]..Y[n] ======---
0x00000096: 2200                                move.l       d0,d1            ; 	for(i=N;i<=n;i++)	To get Y[N]..Y[n]   -=Begin of outer loop (number 2)=-
                             .FORi2                                           
0x00000098: b286                                cmp.l        d6,d1            ;                                          -=Comparing "i" with "N"=-
0x0000009a: 62000044                            bhi          .ENDFORi2        ; 	{                                     -=If (i>n) then jump to .ENDFORi2=-
0x0000009e: a13c00000000                        move.l       #0,acc           ;                                          -=Accumulator initialization=-
0x000000a4: 2c6f0044                            move.l       68(a7),a6        ; 		pCurX=pX+i-1;                   -=Current sample pointer initialization=-
0x000000a8: 43f61c00                            lea          (0,a6,d1.l*4),a1 
0x000000ac: 2c6f0048                            move.l       72(a7),a6        ; 		pPredY=pY+i-2;                  -=Previous Y pointer initialization
0x000000b0: 4bf61cfc                            lea          (-4,a6,d1.l*4),a5 
0x000000b4: 2652                                move.l       (a2),a3          ; 		pCurCoef=pIIR->pIirCoef;        -=Current coefficient pointer initialization=-
                             ;---== Begin of cycle Getting Y[i] ==---
                                                                              ; -=output=*pCurX--*(*pCurCoef++);=-
0x000000b6: 2621                                move.l       -(a1),d3         ; 		                                -=Getting current sample=-
0x000000b8: 281b                                move.l       (a3)+,d4         ;                                          -=Getting current coefficient=-
0x000000ba: a8030ac0                            mac.l        d3,d4,<<         ;                                          -=Getting first iteration of inner loop=-
0x000000be: 7401                                moveq        #1,d2            ; 		for(k=1;k<N;k++)                -=Begin of inner loop=-
0x000000c0: 281b                                move.l       (a3)+,d4         ;                                          -=Getting next current coefficient=-
                             .FORk3                                           
0x000000c2: b480                                cmp.l        d0,d2            ;                                          -=Comparing "k" with "N"=-
0x000000c4: 64000012                            bcc          .ENDFORk3        ; 		{                               -=If (k=>N) then jump to .ENDFORk3=-
                                                                              ;-=output+=*pCurX--*(*pCurCoef++);=-
0x000000c8: 2621                                move.l       -(a1),d3         ; 		                                -=Getting next current sample=-
0x000000ca: a89b4ac3                            mac.l        d3,d4,<<,(a3)+,d4 ;                                       -=First MAC and getting next current coefficient=-
                                                                              ;-=output+=*pPredY--*(*pCurCoef++);=-
0x000000ce: 2625                                move.l       -(a5),d3         ;                                          -=Getting previous Y=-
0x000000d0: a89b4ac3                            mac.l        d3,d4,<<,(a3)+,d4 ;                                       -=Second MAC and getting next current coefficient=-
0x000000d4: 5282                                addq.l       #1,d2            ;                                          -=Incrementing "k"=-
0x000000d6: 60ea                                bra          .FORk3           ;                                          -=Jumping to .FORk3=-
                             .ENDFORk3                                        ; 		}
                                                                              ;---== End of cycle of getting Y[i] ==---
0x000000d8: a187                                move.l       acc,d7           ; 		*pCurY++=output;                -=Moving accumulator to general register=-
0x000000da: 20c7                                move.l       d7,(a0)+         ;                                          -=Store Y[i]=-
0x000000dc: 5281                                addq.l       #1,d1            ;                                          -=Incrementing "i"=-
0x000000de: 60b8                                bra          .FORi2           ;                                          -=Jumping to .FORi1=-
                             .ENDFORi2                                        ; 	}
                             ;---====== End of cycle Y[N]..Y[n] ======---
                             ;---====== Begin of History Buffer Loading ======---
0x000000e0: 2c6f0044                            move.l       68(a7),a6        ;	-=pCurX=pX+n-N+1;=-
0x000000e4: 2e06                                move.l       d6,d7            
0x000000e6: 9e80                                sub.l        d0,d7            
0x000000e8: 43f67c04                            lea          (4,a6,d7.l*4),a1 
0x000000ec: 2c6f0048                            move.l       72(a7),a6        ; 	pCurY=pY+n-N+1;
0x000000f0: 41f67c04                            lea          (4,a6,d7.l*4),a0 ;
0x000000f4: 286a0008                            move.l       8(a2),a4         ; 	pCurHistory=pIIR->pIirHistory;
0x000000f8: 7201                                moveq        #1,d1            ; 	for(i=1;i<N;i++)                      -= i=1 =-
                             .FORbuf                                          
0x000000fa: b280                                cmp.l        d0,d1            ;                                          -=Comparing "i" with "N"=-
0x000000fc: 6400000e                            bcc          .ENDbuf          ; 	{                                     -=If (i=>N) then jump to .ENDbuf=-
0x00000100: 2c48                                move.l       a0,a6            ;        *pCurHistory++=*pCurY++;
0x00000102: 5888                                addq.l       #4,a0            
0x00000104: 28d6                                move.l       (a6),(a4)+       
0x00000106: 28d9                                move.l       (a1)+,(a4)+      ;	*pCurHistory++=*pCurX++;
0x00000108: 5281                                addq.l       #1,d1            ;                                          -=Incrementing "i"=-
0x0000010a: 60ee                                bra          .FORbuf          ;                                          -=Jumping to .FORbuf=-
                             .ENDbuf                                          ; 	}
0x0000010c: 2e2a0004                            move.l       4(a2),d7         ;	pIIR->iIirHistoryCount=pIIR->iIirCoefCount-1;
0x00000110: 5387                                subq.l       #1,d7            
0x00000112: 2547000c                            move.l       d7,12(a2)        ;                                          -=setting pFIR->iFirHistoryCount by pIIR->iIirCoefCount-1 =-
                             ; ---====== End of History Buffer Loading ======--
                             ;-=Restoring values of used registers=-
0x00000116: 4cd77fff                            movem.l      (a7),d0-d7/a0-a6 ; 	}
0x0000011a: 4fef003c                            lea          60(a7),a7        
0x0000011e: 4e75                                rts                           

⌨️ 快捷键说明

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