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

📄 c2cx0032.lst

📁 卓氏向量中断程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
1                            $else
1                            $if    x?=8
1                            call   macro8
1                            $else
1                            lar    ar7,#:num:/divid-2   ; execute ZEROI + num-1 times BUTTFLYI
1                            call   macros
1                            $endif
1                            $endif
     181 01fe 7b9a           banz    loop4,*-,ar2
         01ff 01f9+ 
     182            ;
     183            ;    FFT CODE FOR STAGE 5  / ARP=AR2
     184            ;
     185 0200 0101- STAGE5:  lar     ar1,DATAADD   ; ar1 -> DATA
     186 0201 020a-          lar     ar2,DATA32    ; ar2 -> DATA+32
     187            ;
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Sat Jul 14 16:18:01 2001
Copyright (c) 1987-1999  Texas Instruments Incorporated 
0032 point DIT Radix-2, Complex FFT                                  PAGE   14

     188 0202 030c-          lar     ar3,cos5      ; start of cosine in stage 5
     189 0203 040b-          lar     ar4,sin5      ; start of sine in stage   5
     190 0204                do_loops 16           ; setup for 16 butterflies
1        0204 b702           lar    ar7,#16/divid-2   ; execute ZEROI + num-1 times BUTTFLYI
     191 0205                ex_btfly              ; execute the butterflies
1                   
1        0205 b002  macros:  lar       ar0,#2
1                   
1        0206                ZEROI                   ; execute macro ZEROI
2        0206 1f89           LACC    *,15,AR1  ; ACC := (1/2)(QR)           PR   QR    1
2        0207 2f80           ADD     *,15      ; ACC := (1/2)(PR+QR)        PR   QR    1
2        0208 98aa           SACH    *+,0,AR2  ; PR  := (1/2)(PR+QR)        PI   QR    2
2        0209 6580           SUB     *,16      ; ACC := (1/2)(PR+QR)-(QR)   PI   QR    2
2        020a 98a0           SACH    *+        ; QR  := (1/2)(PR-QR)        PI   QI    2
2                   ;
2        020b 1f89           LACC    *,15,AR1  ; ACC := (1/2)(QI)           PI   QI    1
2        020c 2f80           ADD     *,15      ; ACC := (1/2)(PI+QI)        PI   QI    1
2        020d 98aa           SACH    *+,0,AR2  ; PI  := (1/2)(PI+QI)        PR+1 QI    2
2        020e 6580           SUB     *,16      ; ACC := (1/2)(PI+QI)-(QI)   PR+1 QI    2
2        020f 98a0           SACH    *+        ; QI  := (1/2)(PI-QI)        PR+1 QR+1  2
1        0210 73ab           LT    *+,AR3            ;TREG:= QR
1                   
1                            $if divid=4
1        0211                butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
2                   ; LT    *+,AR3     ;TREG:= QR                   QR   PR   QI    C   S   3
2        0211 548a    MPY   *,AR2      ;PREG:= QR*WR/2              QR   PR   QI    C   S   2
2        0212 719c    LTP   *-,AR4     ;ACC := QR*WR/2              QI   PR   QR    C   S   4
2        0213 548b    MPY   *,AR3      ;PREG:= QI*WI/2              QI   PR   QR    C   S   3
2        0214 50aa    MPYA  *+,AR2     ;ACC := (QR*WR+QI*WI)/2      QR   PR   QR    C+1 S   2
2                   ;                   PREG:= QI*WR
2        0215 738d    LT    *,AR5      ;TREG = QR                   QR   PR   QR    C+1 S   5
2        0216 9989    SACH  *,1,AR1    ;TEMP:= (QR*WR+QI*WI)        QR   PR   QR    C+1 S   1
2                   ;
2        0217 2f80    ADD   *,15       ;ACC := (PR+(QR*WR+QI*WI))/2 QR   PR   QR    C+1 S   1
2        0218 98ad    SACH  *+,0,AR5   ;PR  := (PR+(QR*WR+QI*WI))/2 QR   PI   QR    C+1 S   5
2        0219 658a    SUB   *,16,AR2   ;ACC := (PR-(QR*WR+QI*WI))/2 QR   PI   QR    C+1 S   2
2        021a 98e9    SACH  *0+,0,AR1  ;QR  := (PR-(QR*WR+QI*WI))/2 QR   PI   QR+1  C+1 S   1
2                   ;
2        021b 1f8c    LAC   *,15,AR4   ;ACC := PI     /PREG=QI*WR   QI   PI   QR+1  C+1 S   4
2        021c 51aa    MPYS  *+,AR2     ;PREG:= QR*WI/2              QI   PI   QR+1  C+1 S+1 2
2                   ;                  ;ACC := (PI-QI*WR)/2
2        021d 7090    LTA   *-         ;ACC := (PI-(QI*WR-QR*WI))/2 QR1  PI   QI    C+1 S+1 2
2        021e 98e9    SACH  *0+,0,AR1  ;QI  := (PI-(QI*WR-QR*WI))/2 QR1  PI   QI+1  C+1 S+1 1
2        021f be02    NEG              ;ACC :=(-PI+(QI*WR-QR*WI))/2 QR1  PI   QI+1  C+1 S+1 1
2        0220 6180    ADD   *,16       ;ACC := (PI+(QI*WR-QR*WI))/2 QR1  PI   QI+1  C+1 S+1 1
2        0221 98ab    SACH  *+,0,AR3 ;PI  := (PI+(QI*WR-QR*WI))/2 QR1  PR+1 QI+1  C+1 S+1 3
2                   
1        0222                butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
2                   ; LT    *+,AR3     ;TREG:= QR                   QR   PR   QI    C   S   3
2        0222 548a    MPY   *,AR2      ;PREG:= QR*WR/2              QR   PR   QI    C   S   2
2        0223 719c    LTP   *-,AR4     ;ACC := QR*WR/2              QI   PR   QR    C   S   4
2        0224 548b    MPY   *,AR3      ;PREG:= QI*WI/2              QI   PR   QR    C   S   3
2        0225 50aa    MPYA  *+,AR2     ;ACC := (QR*WR+QI*WI)/2      QR   PR   QR    C+1 S   2
2                   ;                   PREG:= QI*WR
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Sat Jul 14 16:18:01 2001
Copyright (c) 1987-1999  Texas Instruments Incorporated 
0032 point DIT Radix-2, Complex FFT                                  PAGE   15

2        0226 738d    LT    *,AR5      ;TREG = QR                   QR   PR   QR    C+1 S   5
2        0227 9989    SACH  *,1,AR1    ;TEMP:= (QR*WR+QI*WI)        QR   PR   QR    C+1 S   1
2                   ;
2        0228 2f80    ADD   *,15       ;ACC := (PR+(QR*WR+QI*WI))/2 QR   PR   QR    C+1 S   1
2        0229 98ad    SACH  *+,0,AR5   ;PR  := (PR+(QR*WR+QI*WI))/2 QR   PI   QR    C+1 S   5
2        022a 658a    SUB   *,16,AR2   ;ACC := (PR-(QR*WR+QI*WI))/2 QR   PI   QR    C+1 S   2
2        022b 98e9    SACH  *0+,0,AR1  ;QR  := (PR-(QR*WR+QI*WI))/2 QR   PI   QR+1  C+1 S   1
2                   ;
2        022c 1f8c    LAC   *,15,AR4   ;ACC := PI     /PREG=QI*WR   QI   PI   QR+1  C+1 S   4
2        022d 51aa    MPYS  *+,AR2     ;PREG:= QR*WI/2              QI   PI   QR+1  C+1 S+1 2
2                   ;                  ;ACC := (PI-QI*WR)/2
2        022e 7090    LTA   *-         ;ACC := (PI-(QI*WR-QR*WI))/2 QR1  PI   QI    C+1 S+1 2
2        022f 98e9    SACH  *0+,0,AR1  ;QI  := (PI-(QI*WR-QR*WI))/2 QR1  PI   QI+1  C+1 S+1 1
2        0230 be02    NEG              ;ACC :=(-PI+(QI*WR-QR*WI))/2 QR1  PI   QI+1  C+1 S+1 1
2        0231 6180    ADD   *,16       ;ACC := (PI+(QI*WR-QR*WI))/2 QR1  PI   QI+1  C+1 S+1 1
2        0232 98ab    SACH  *+,0,AR3 ;PI  := (PI+(QI*WR-QR*WI))/2 QR1  PR+1 QI+1  C+1 S+1 3
2                   
1                            $endif
1                   
1                            $if divid=8
1                            butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
1                            butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
1                            butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
1                            butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
1                            butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
1                            butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
1                            $endif
1             0233+ loop:    .set    $
1                   
1                            $if divid=4
1        0233                butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
2                   ; LT    *+,AR3     ;TREG:= QR                   QR   PR   QI    C   S   3
2        0233 548a    MPY   *,AR2      ;PREG:= QR*WR/2              QR   PR   QI    C   S   2
2        0234 719c    LTP   *-,AR4     ;ACC := QR*WR/2              QI   PR   QR    C   S   4
2        0235 548b    MPY   *,AR3      ;PREG:= QI*WI/2              QI   PR   QR    C   S   3
2        0236 50aa    MPYA  *+,AR2     ;ACC := (QR*WR+QI*WI)/2      QR   PR   QR    C+1 S   2
2                   ;                   PREG:= QI*WR
2        0237 738d    LT    *,AR5      ;TREG = QR                   QR   PR   QR    C+1 S   5
2        0238 9989    SACH  *,1,AR1    ;TEMP:= (QR*WR+QI*WI)        QR   PR   QR    C+1 S   1
2                   ;
2        0239 2f80    ADD   *,15       ;ACC := (PR+(QR*WR+QI*WI))/2 QR   PR   QR    C+1 S   1
2        023a 98ad    SACH  *+,0,AR5   ;PR  := (PR+(QR*WR+QI*WI))/2 QR   PI   QR    C+1 S   5
2        023b 658a    SUB   *,16,AR2   ;ACC := (PR-(QR*WR+QI*WI))/2 QR   PI   QR    C+1 S   2
2        023c 98e9    SACH  *0+,0,AR1  ;QR  := (PR-(QR*WR+QI*WI))/2 QR   PI   QR+1  C+1 S   1
2                   ;
2        023d 1f8c    LAC   *,15,AR4   ;ACC := PI     /PREG=QI*WR   QI   PI   QR+1  C+1 S   4
2        023e 51aa    MPYS  *+,AR2     ;PREG:= QR*WI/2              QI   PI   QR+1  C+1 S+1 2
2                   ;                  ;ACC := (PI-QI*WR)/2
2        023f 7090    LTA   *-         ;ACC := (PI-(QI*WR-QR*WI))/2 QR1  PI   QI    C+1 S+1 2
2        0240 98e9    SACH  *0+,0,AR1  ;QI  := (PI-(QI*WR-QR*WI))/2 QR1  PI   QI+1  C+1 S+1 1
2        0241 be02    NEG              ;ACC :=(-PI+(QI*WR-QR*WI))/2 QR1  PI   QI+1  C+1 S+1 1
2        0242 6180    ADD   *,16       ;ACC := (PI+(QI*WR-QR*WI))/2 QR1  PI   QI+1  C+1 S+1 1
2        0243 98ab    SACH  *+,0,AR3 ;PI  := (PI+(QI*WR-QR*WI))/2 QR1  PR+1 QI+1  C+1 S+1 3
2                   
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Sat Jul 14 16:18:01 2001
Copyright (c) 1987-1999  Texas Instruments Incorporated 
0032 point DIT Radix-2, Complex FFT                                  PAGE   16

1        0244                butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
2                   ; LT    *+,AR3     ;TREG:= QR                   QR   PR   QI    C   S   3
2        0244 548a    MPY   *,AR2      ;PREG:= QR*WR/2              QR   PR   QI    C   S   2
2        0245 719c    LTP   *-,AR4     ;ACC := QR*WR/2              QI   PR   QR    C   S   4
2        0246 548b    MPY   *,AR3      ;PREG:= QI*WI/2              QI   PR   QR    C   S   3
2        0247 50aa    MPYA  *+,AR2     ;ACC := (QR*WR+QI*WI)/2      QR   PR   QR    C+1 S   2
2                   ;                   PREG:= QI*WR
2        0248 738d    LT    *,AR5      ;TREG = QR                   QR   PR   QR    C+1 S   5
2        0249 9989    SACH  *,1,AR1    ;TEMP:= (QR*WR+QI*WI)        QR   PR   QR    C+1 S   1
2                   ;
2        024a 2f80    ADD   *,15       ;ACC := (PR+(QR*WR+QI*WI))/2 QR   PR   QR    C+1 S   1
2        024b 98ad    SACH  *+,0,AR5   ;PR  := (PR+(QR*WR+QI*WI))/2 QR   PI   QR    C+1 S   5
2        024c 658a    SUB   *,16,AR2   ;ACC := (PR-(QR*WR+QI*WI))/2 QR   PI   QR    C+1 S   2
2        024d 98e9    SACH  *0+,0,AR1  ;QR  := (PR-(QR*WR+QI*WI))/2 QR   PI   QR+1  C+1 S   1
2                   ;
2        024e 1f8c    LAC   *,15,AR4   ;ACC := PI     /PREG=QI*WR   QI   PI   QR+1  C+1 S   4
2        024f 51aa    MPYS  *+,AR2     ;PREG:= QR*WI/2              QI   PI   QR+1  C+1 S+1 2
2                   ;                  ;ACC := (PI-QI*WR)/2
2        0250 7090    LTA   *-         ;ACC := (PI-(QI*WR-QR*WI))/2 QR1  PI   QI    C+1 S+1 2
2        0251 98e9    SACH  *0+,0,AR1  ;QI  := (PI-(QI*WR-QR*WI))/2 QR1  PI   QI+1  C+1 S+1 1
2        0252 be02    NEG              ;ACC :=(-PI+(QI*WR-QR*WI))/2 QR1  PI   QI+1  C+1 S+1 1
2        0253 6180    ADD   *,16       ;ACC := (PI+(QI*WR-QR*WI))/2 QR1  PI   QI+1  C+1 S+1 1
2        0254 98ab    SACH  *+,0,AR3 ;PI  := (PI+(QI*WR-QR*WI))/2 QR1  PR+1 QI+1  C+1 S+1 3
2                   
1                            $endif
1                   ;
1                   ;  DIVID = 8 DOES NOT WORK!!!! 10.7.90
1                   ;
1                            $if divid=8
1                            butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
1                            butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
1                            butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
1                            butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
1                            butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
1                            butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
1                            $endif
1        0255                butt_c2x  3             ; execute macro BUTFLYI without 'LT...'
2                   ; LT    *+,AR3     ;TREG:= QR                   QR   PR   QI    C   S   3
2        0255 548a    MPY   *,AR2      ;PREG:= QR*WR/2              QR   PR   QI    C   S   2
2        0256 719c    LTP   *-,AR4     ;ACC := QR*WR/2              QI   PR   QR    C   S   4
2        0257 548b    MPY   *,AR3      ;PREG:= QI*WI/2              QI   PR   QR    C   S   3
2        0258 50aa    MPYA  *+,AR2     ;ACC := (QR*WR+QI*WI)/2      QR   PR   QR    C+1 S   2
2                   ;                   PREG:= QI*WR
2        0259 738d    LT    *,AR5      ;TREG = QR                   QR   PR   QR    C+1 S   5
2        025a 9989    SACH  *,1,AR1    ;TEMP:= (QR*WR+QI*WI)        QR   PR   QR    C+1 S   1
2                   ;
2        025b 2f80    ADD   *,15       ;ACC := (PR+(QR*WR+QI*WI))/2 QR   PR   QR    C+1 S   1
2        025c 98ad    SACH  *+,0,AR5   ;PR  := (PR+(QR*WR+QI*WI))/2 QR   PI   QR    C+1 S   5
2        025d 658a    SUB   *,16,AR2   ;ACC := (PR-(QR*WR+QI*WI))/2 

⌨️ 快捷键说明

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