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

📄 cfft32c.lst

📁 很好得文件
💻 LST
📖 第 1 页 / 共 4 页
字号:
1        00000088 1E8A              MOVL    *--XAR2,ACC     ; QR':=(PR-QI)/2    PI      QR
1        00000089 DA02              ADDB    XAR2,#2         ;                   PI      QI
1                                 
1        0000008a 06C6              MOVL    ACC,*XAR6       ; ACC:=PI           PI      QI
1        0000008b FF40              SFR     ACC,#1          ; ACC:=PI/2         PI      QI
1        0000008c A0AB              MOVL    P,XAR5          ; P=QR              PI      QI
1        0000008d 11AC              SUBL    ACC,P<<PM       ; ACC=(PI-QR)/2     PI      QI
1        0000008e 1E86              MOVL    *XAR6++,ACC     ; ACC:=(PI-QR)/2    PR+1    QI    
1        0000008f 07AB              ADDL    ACC,P           ; ACC:=(PI+QR)/2    PR+1    QI 
TMS320C2000 COFF Assembler PC Version 3.06 Fri Nov 07 10:50:04 2003

Tools Copyright (c) 1996-2002 Texas Instruments Incorporated
cfft32c.asm                                                          PAGE   12

1        00000090 1E82              MOVL    *XAR2++,ACC     ; QI':=(PI+QR)/2    PR+1    QR+1
1                                                   
     480 00000091                   P3BY4I                  ; AR7 at end, Use *0+ modify
1                                                         ;                       -       PR   QR 
1        00000091 06C6              MOVL    ACC,*XAR6       ; ACC=PR                -       PR   QR  
1        00000092 FF40              SFR     ACC,#1          ; ACC=PR/2              -       PR   QR  
1        00000093 5667              QMPYL   P,XT,*XAR2      ; PREG=W*QR/2           W*QR/2  PR   QR 
         00000094 00C2 
1        00000095 07AB              ADDL    ACC,P           ; ACC=(PR+W*QR)/2       W*QR/2  PR   QR
1        00000096 A9A5              MOVL    XAR5,P          ; XAR5=W*QR/2           W*QR/2  PR   QR
1        00000097 5667              QMPYL   P,XT,*+XAR2[2]  ; ACC=(PR+W*QR)/2       W*QI/2  PR   QR
         00000098 00D2 
1        00000099 03AB              SUBL    ACC,P           ; ACC=(PR-W*QI+W*QR)/2  W*QI/2  PR   QR 
1        0000009a 1E82              MOVL    *XAR2++,ACC     ; QR'=(PR-W*QI+W*QR)/2  W*QI/2  PR   QI
1        0000009b FF54              NEG     ACC             ; ACC=-(PR-W*QI+W*QR)/2 W*QI/2  PR   QI
1        0000009c 5601              ADDL    *XAR6++,ACC     ; PR'=(PR+W*QI-W*QR)/2  W*QI/2  PI   QI
         0000009d 0086 
1                     
1        0000009e 06C6              MOVL    ACC,*XAR6       ; ACC=PI                W*QI/2  PI   QI
1        0000009f FF40              SFR     ACC,#1          ; ACC=PI/2              W*QI/2  PI   QI
1        000000a0 07AB              ADDL    ACC,P           ; ACC=(PR+W*QI)/2       W*QI/2  PI   QI
1        000000a1 07A5              ADDL    ACC,XAR5        ; ACC=(PI+W*QI+W*QR)/2  W*QR/2  PI   QI
1        000000a2 77B2              NOP     *,ARP2
1        000000a3 1EBB              MOVL    *0++,ACC        ; QI'=(PI+W*QI+W*QR)/2  W*QR/2  PI   QR+1
1        000000a4 FF54              NEG     ACC             ; ACC=-(PI+W*QI+W*QR)/2 W*QR/2  PI   QR+1
1        000000a5 5601              ADDL    *XAR6,ACC       ; PI'=(PI-W*QI-W*QR)/2  W*QR/2  PI   QR+1
         000000a6 00C6 
1        000000a7 77BB              NOP     *0++            ;                       W*QR/2  PR+1 QR+1
     481 000000a8 0009              BANZ    STAGE3_LP,AR1--
         000000a9 FFB6 
     482                                                                                                          
     483              ;--------------------------------------------------------
     484              ; Stage 4 to LOG2(N) - Using BFLY Macro
     485              ;--------------------------------------------------------   
     486              ; Initialisation
     487              ; 1. Initialise the Butterfly loop(BLC), Group loop(GLC) & Stage loop counter(SLC)
     488              ; 2. Initialise the Data offset(DOST) and twiddle factor offset (TOST)          
     489 000000aa 5603              MOV     ACC,*+XAR7[4]<<12 ; AH=(N/16)
         000000ab 0CE7 
     490 000000ac 9741              MOV     *-SP[GLCB],AH   ; GLCB=N/16
     491 000000ad 9743              MOV     *-SP[GLC],AH    ; GLC=N/16
     492 000000ae 56BF              MOVB    *-SP[BLC],#8,UNC; BLC=8
         000000af 0842 
     493              
     494              ; Twiddle factor offset
     495 000000b0 FF30              LSL     ACC,#1
     496 000000b1 2DA8              MOV     T,AH            ; T=N/8
     497 000000b2 DF0D              ADDB    XAR7,#13
     498 000000b3 12C7              MPY     ACC,T,*XAR7     ; ACC=ratio*N/8
     499 000000b4 DF8D              SUBB    XAR7,#13            
     500 000000b5 9645              MOV     *-SP[TOST],AL   ; TOST=ratio*N/8
     501                          
     502 000000b6 85EF              MOV     ACC,*+XAR7[5]   ; ACC=nrstage
     503 000000b7 1903              SUB     ACC,#3          ; ACC=nrstage-3
     504 000000b8 9644              MOV     *-SP[SLC],AL    ; SLC=nrState-3
TMS320C2000 COFF Assembler PC Version 3.06 Fri Nov 07 10:50:04 2003

Tools Copyright (c) 1996-2002 Texas Instruments Incorporated
cfft32c.asm                                                          PAGE   13

     505 000000b9 56BF              MOVB    *-SP[DOST],#32,UNC ; DOST=32
         000000ba 2046 
     506              
     507 000000bb 5603              MOV     ACC,*+XAR7[4]<<15  ; AH=N/2
         000000bc 0FE7 
     508 000000bd DF0D              ADDB    XAR7,#13        
     509 000000be 2DC7              MOV     T,*XAR7         ; T=ratio
     510 000000bf DF8D              SUBB    XAR7,#13        
     511 000000c0 12A8              MPY     ACC,T,AH        ; ACC=ratio*N/2
     512 000000c1 07D7              ADDL    ACC,*+XAR7[2]   ; 
     513 000000c2 1E49              MOVL    *-SP[WRWIOST],ACC  ; WRWIOST=tfptr+ratio*N/2 ----> COS(Angle)
     514              
     515              
     516 000000c3       SLP:                                ; Stage loop 
     517 000000c3 C4C7              MOVL    XAR6,*XAR7      ; XAR6=ipcbptr ----->  P          
     518 000000c4 06C7              MOVL    ACC,*XAR7       ; ACC=ipcbptr
     519 000000c5 8146              ADD     ACC,*-SP[DOST]  ; ACC=ipcbptr+DOST
     520 000000c6 86A9              MOVL    XAR2,ACC        ; XAR2->ipcbptr+DOST -----> Q
     521                          
     522 000000c7 5845              MOVZ    AR0,*-SP[TOST]  ; AR0=TOST
     523              
     524                          
     525 000000c8       GLP:                                ; Group loop
     526 000000c8 8249              MOVL    XAR3,*-SP[WRWIOST]
     527 000000c9 8AD7              MOVL    XAR4,*+XAR7[2]  ; XAR4=tfptr ---> SIN(Angle)
     528                          
     529 000000ca 5942              MOVZ    AR1,*-SP[BLC]   ; AR1=BLC
     530 000000cb D981              SUBB    XAR1,#1
     531 000000cc       BLP:                                ; Butterfly loop
     532 000000cc                   BFLY    7
1                                                         ;                         -     PR      QR      WR      WI 
1        000000cc 87C3              MOVL    XT,*XAR3        ; XT=WR                   WR    PR      QR      WR      WI
1        000000cd 77BB              NOP     *0++            ;                         WR    PR      QR      WR+n    WI
1        000000ce 5667              QMPYL   P,XT,*XAR2++    ; P=QR*WR                 WR    PR      QI      WR+n    WI
         000000cf 0082 
1        000000d0 5663              QMPYL   ACC,XT,*,ARP4   ; ACC=QI*WR               WR    PR      QI      WR+n    WI
         000000d1 00B4 
1        000000d2 A948              MOVL    *-SP[TEMP],P    ; TEMP=QR*WR              WR    PR      QI      WR+n    WI
1                     
1        000000d3 87BB              MOVL    XT,*0++         ; XT=WI                   WR    PR      QI      WR+n    WI+n
1        000000d4 5667              QMPYL   P,XT,*--XAR2    ; P=WI*QR                 WR    PR      QR      WR+n    WI+n
         000000d5 008A 
1        000000d6 03AB              SUBL    ACC,P           ; ACC=(QI*WR-QR*WI)       WR    PR      QR      WR+n    WI+n
1                                 
1                                 .if(TF_QFMAT==Q30)
1        000000d7 FF30              LSL     ACC,#1          ; ACC=(QI*WR-QR*WI) (Q30)
1                                 .endif
1                     
1        000000d8 83A9              MOVL    XAR5,ACC        ; XAR5=(QI*WR-QR*WI) (Q30)
1                                             
1        000000d9 5663              QMPYL   ACC,XT,*+XAR2[2]; ACC=WI*QI              WR    PR      QR      WR+n    WI+n
         000000da 00D2 
1        000000db 0748              ADDL    ACC,*-SP[TEMP]  ; ACC=(QR*WR+QI*WI)      WR    PR      QR      WR+n    WI+n
1                     
1                                 .if(TF_QFMAT==Q30)
TMS320C2000 COFF Assembler PC Version 3.06 Fri Nov 07 10:50:04 2003

Tools Copyright (c) 1996-2002 Texas Instruments Incorporated
cfft32c.asm                                                          PAGE   14

1        000000dc FF30              LSL     ACC,#1          ; ACC=(QR*WR+QI*WI) in Q30
1                                 .endif
1                     
1        000000dd A3C6              MOVL    P,*XAR6         ; P=PR                    WR    PR      QR      WR+n    WI+n
1        000000de 10AC              ADDL    ACC,P<<PM       ; ACC=(PR+QR*WR+QI*WI)/2  WR    PR      QR      WR+n    WI+n
1        000000df 1E86              MOVL    *XAR6++,ACC     ; PR'=(PR+QR*WR+QI*WI)/2  WR    PI      QR      WR+n    WI+n
1                     
1        000000e0 5641              SUBL    P,ACC           ; P=(PR-QR*WR-QI*WI)/2    WR    PI      QR      WR+n    WI+n
         000000e1 00AB 
1        000000e2 A982              MOVL    *XAR2++,P       ; QR'=(PR-QR*WR-QI*WI)/2  WR    PI      QI      WR+n    WI+n
1                     
1        000000e3 A0A9              MOVL    ACC,XAR5        ; ACC=(QI*WR-QR*WI)/2     WR    PI      QI      WR+n    WI+n
1        000000e4 A3C6              MOVL    P,*XAR6         ; P=PI                    WR    PI      QI      WR+n    WI+n
1        000000e5 10AC              ADDL    ACC,P<<PM       ; ACC=(PI+QI*WR-QR*WI)/2  WR    PI      QI      WR+n    WI+n
1        000000e6 1E86              MOVL    *XAR6++,ACC     ; (PI+QI*WR-QR*WI)/2      WR    PR+1    QI      WR+n    WI+n
1                     
1        000000e7 5641              SUBL    P,ACC           ; P=(PI-QI*WR+QR*WI)/2    WR    PR+1    QI      WR+n    WI+n
         000000e8 00AB 
1        000000e9 A982              MOVL    *XAR2++,P       ; QI'=(PI-QI*WR+QR*WI)/2  WR    PR+1    QR+1    WR+n    WI+n
     533 000000ea 0009              BANZ    BLP,AR1--       ; Butterfly loop                      
         000000eb FFE2 
     534              
     535              ; Operations performed between the group
     536              ; 1. Manuplating the P & Q pointer to point to the next group
     537              ; 2. Reinitialising the WI and WR twiddle factor pointer  
     538              ; 3. Decrementing the Group Count by 1, till all the group in the stage is computed
     539              ; 4. Reinitialising the Butterfly loop index for next group
     540                                                  ; ARP=AR2
     541 000000ec 0E46              MOVU    ACC,*-SP[DOST]  ; ACC=DOST
     542 000000ed 5601              ADDL    XAR6,ACC        
         000000ee 00A6 
     543 000000ef 5601              ADDL    XAR2,ACC        
         000000f0 00A2 
     544 000000f1 0B43              DEC     *-SP[GLC]
     545 000000f2 EDD6              BF      GLP,NEQ         ; Group Loop 
     546                
     547              ; Operation Performed, between the stage
     548              ; 1. Mutiply the data offset by 2
     549              ; 2. Divide the Group count by 2
     550              ; 3. Divide the Twiddle offset by 2
     551              ; 4. Multiply the butterfly count by 2
     552              ; 5. Decrementing the stage count by 1, till all the stage gets over
     553              ; 6. Reinitialising the P & Q data pointer to the first group of next stage         
     554 000000f3 5603              MOV     ACC,*-SP[DOST]<<1
         000000f4 0146 
     555 000000f5 9646              MOV     *-SP[DOST],AL   ; DOST=DOST*2
     556              
     557 000000f6 5603              MOV     ACC,*-SP[BLC]<<1
         000000f7 0142 
     558 000000f8 9642              MOV     *-SP[BLC],AL    ; BLC=BLC*2
     559              
     560 000000f9 5603              MOV     ACC,*-SP[TOST]<<15
         000000fa 0F45 
     561 000000fb 9745              MOV     *-SP[TOST],AH   ; TOST=TOST/2
     562              
TMS320C2000 COFF Assembler PC Version 3.06 Fri Nov 07 10:50:04 2003

Tools Copyright (c) 1996-2002 Texas Instruments Incorporated
cfft32c.asm                                                          PAGE   15

     563 000000fc 5603              MOV     ACC,*-SP[GLCB]<<15
         000000fd 0F41 
     564 000000fe 9741              MOV     *-SP[GLCB],AH   ; GLCB=GLCB/2
     565 000000ff 9743              MOV     *-SP[GLC],AH    ; GLC=GLCB/2
     566              
     567 00000100 0B44              DEC     *-SP[SLC]
     568 00000101 EDC2              BF      SLP,NEQ         ; Stage loop
     569                                   
     570 00000102 FF69              SPM     0               ; SPM set to 0
     571                          
     572 00000103 FE8A              SUBB    SP,#FFT_LOCAL_FRAME ; Clear local frame
     573 00000104 82BE              POP     XAR3            ; Context Restore
     574 00000105 86BE              POP     XAR2
     575 00000106 8BBE              POP     XAR1 
     576 00000107 0006              LRETR
     577              
     578                    
     579                                                                                                             
     580              

No Assembly Errors, No Assembly Warnings

⌨️ 快捷键说明

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