www.pudn.com > fft_iccavr.rar > fffff.lis


                        .module fffff.c 
                        .area data(ram, con, rel) 
 0000           _dataR:: 
 0000                   .blkb 2 
                        .area idata 
 0000 0500              .word 5 
                        .area data(ram, con, rel) 
 0002                   .blkb 2 
                        .area idata 
 0002 0500              .word 5 
                        .area data(ram, con, rel) 
 0004                   .blkb 2 
                        .area idata 
 0004 0500              .word 5 
                        .area data(ram, con, rel) 
 0006                   .blkb 2 
                        .area idata 
 0006 0500              .word 5 
                        .area data(ram, con, rel) 
 0008                   .blkb 2 
                        .area idata 
 0008 0000              .word 0 
                        .area data(ram, con, rel) 
 000A                   .blkb 2 
                        .area idata 
 000A 0000              .word 0 
                        .area data(ram, con, rel) 
 000C                   .blkb 2 
                        .area idata 
 000C 0000              .word 0 
                        .area data(ram, con, rel) 
 000E                   .blkb 2 
                        .area idata 
 000E 0000              .word 0 
                        .area data(ram, con, rel) 
 0010                   .blkb 2 
                        .area idata 
 0010 0500              .word 5 
                        .area data(ram, con, rel) 
 0012                   .blkb 2 
                        .area idata 
 0012 0500              .word 5 
                        .area data(ram, con, rel) 
 0014                   .blkb 2 
                        .area idata 
 0014 0500              .word 5 
                        .area data(ram, con, rel) 
 0016                   .blkb 2 
                        .area idata 
 0016 0500              .word 5 
                        .area data(ram, con, rel) 
 0018                   .blkb 2 
                        .area idata 
 0018 0000              .word 0 
                        .area data(ram, con, rel) 
 001A                   .blkb 2 
                        .area idata 
 001A 0000              .word 0 
                        .area data(ram, con, rel) 
 001C                   .blkb 2 
                        .area idata 
 001C 0000              .word 0 
                        .area data(ram, con, rel) 
 001E                   .blkb 2 
                        .area idata 
 001E 0000              .word 0 
                        .area data(ram, con, rel) 
 0020                   .dbfile D:\HJN\Design\AVR\fft\fffff.c 
 0020                   .dbsym e dataR _dataR A[32:16]I 
                        .area text(rom, con, rel) 
 0000                   .dbfile D:\HJN\Design\AVR\fft\fffff.c 
 0000                   .dbfunc e FFT _FFT fV 
 0000           ;             x6 -> y+22 
 0000           ;             x5 -> y+20 
 0000           ;             x4 -> y+18 
 0000           ;             xx -> y+16 
 0000           ;             x3 -> y+14 
 0000           ;             x2 -> y+12 
 0000           ;             x1 -> R12,R13 
 0000           ;             x0 -> R10,R11 
 0000           ;              L -> y+27 
 0000           ;              j -> R14,R15 
 0000           ;           temp -> y+8 
 0000           ;             TI -> y+4 
 0000           ;             TR -> y+0 
 0000           ;              i -> y+26 
 0000           ;              p -> R10,R11 
 0000           ;              b -> y+24 
 0000           ;              k -> R12,R13 
 0000           ;          dataI -> y+41 
 0000           ;          dataR -> y+39 
                        .even 
 0000           _FFT:: 
 0000 0E940000          xcall push_arg4 
 0004 0E940000          xcall push_gset5 
 0008 6D97              sbiw R28,29 
 000A                   .dbline -1 
 000A                   .dbline 11 
 000A           ; #include  
 000A           ; #include  
 000A           ; #define PI 3.1415926 
 000A           ; #define qq PI/8 
 000A           ;  
 000A           ; int dataR[]={5,5,5,5,0,0,0,0,5,5,5,5,0,0,0,0}; 
 000A           ; int dataI[16],w[32]; 
 000A           ;  
 000A           ;  
 000A           ; void FFT(int dataR[],int dataI[]) 
 000A           ; {int x0,x1,x2,x3,x4,x5,x6,xx; 
 000A                   .dbline 16 
 000A           ;  unsigned char i; 
 000A           ;  int L,j,k,b,p; 
 000A           ;  float TR,TI,temp; 
 000A           ; /********** following code invert sequence ************/ 
 000A           ; for(i=0;i<16;i++) 
 000A 0024              clr R0 
 000C 0A8E              std y+26,R0 
 000E 67C0              xjmp L5 
 0010           L2: 
 0010                   .dbline 17 
 0010                   .dbline 17 
 0010 2224              clr R2 
 0012 3324              clr R3 
 0014 3F8A              std y+23,R3 
 0016 2E8A              std y+22,R2 
 0018 3D8A              std y+21,R3 
 001A 2C8A              std y+20,R2 
 001C 3B8A              std y+19,R3 
 001E 2A8A              std y+18,R2 
 0020 3F86              std y+15,R3 
 0022 2E86              std y+14,R2 
 0024 3D86              std y+13,R3 
 0026 2C86              std y+12,R2 
 0028 CC24              clr R12 
 002A DD24              clr R13 
 002C AA24              clr R10 
 002E BB24              clr R11 
 0030                   .dbline 18 
 0030 8A8D              ldd R24,y+26 
 0032 9927              clr R25 
 0034 8170              andi R24,1 
 0036 9070              andi R25,0 
 0038 5C01              movw R10,R24 
 003A                   .dbline 18 
 003A 8A8D              ldd R24,y+26 
 003C 9927              clr R25 
 003E 9595              asr R25 
 0040 8795              ror R24 
 0042 8170              andi R24,1 
 0044 9070              andi R25,0 
 0046 6C01              movw R12,R24 
 0048                   .dbline 18 
 0048 8A8D              ldd R24,y+26 
 004A 9927              clr R25 
 004C 9595              asr R25 
 004E 8795              ror R24 
 0050 9595              asr R25 
 0052 8795              ror R24 
 0054 8170              andi R24,1 
 0056 9070              andi R25,0 
 0058 9D87              std y+13,R25 
 005A 8C87              std y+12,R24 
 005C                   .dbline 18 
 005C 8A8D              ldd R24,y+26 
 005E 9927              clr R25 
 0060 9595              asr R25 
 0062 8795              ror R24 
 0064 9595              asr R25 
 0066 8795              ror R24 
 0068 9595              asr R25 
 006A 8795              ror R24 
 006C 8170              andi R24,1 
 006E 9070              andi R25,0 
 0070 9F87              std y+15,R25 
 0072 8E87              std y+14,R24 
 0074                   .dbline 20 
 0074 04E0              ldi R16,4 
 0076 10E0              ldi R17,0 
 0078 9601              movw R18,R12 
 007A 0E940000          xcall empy16s 
 007E 1801              movw R2,R16 
 0080 08E0              ldi R16,8 
 0082 10E0              ldi R17,0 
 0084 9501              movw R18,R10 
 0086 0E940000          xcall empy16s 
 008A 2801              movw R4,R16 
 008C 420C              add R4,R2 
 008E 531C              adc R5,R3 
 0090 2C85              ldd R18,y+12 
 0092 3D85              ldd R19,y+13 
 0094 02E0              ldi R16,2 
 0096 10E0              ldi R17,0 
 0098 0E940000          xcall empy16s 
 009C 400E              add R4,R16 
 009E 511E              adc R5,R17 
 00A0 2E84              ldd R2,y+14 
 00A2 3F84              ldd R3,y+15 
 00A4 420C              add R4,R2 
 00A6 531C              adc R5,R3 
 00A8 598A              std y+17,R5 
 00AA 488A              std y+16,R4 
 00AC                   .dbline 21 
 00AC 82E0              ldi R24,2 
 00AE 0A8C              ldd R0,y+26 
 00B0 809D              mul R24,R0 
 00B2 F001              movw R30,R0 
 00B4 0FA0              ldd R0,y+39 
 00B6 18A4              ldd R1,y+40 
 00B8 E00D              add R30,R0 
 00BA F11D              adc R31,R1 
 00BC 2080              ldd R2,z+0 
 00BE 3180              ldd R3,z+1 
 00C0 9201              movw R18,R4 
 00C2 02E0              ldi R16,2 
 00C4 10E0              ldi R17,0 
 00C6 0E940000          xcall empy16s 
 00CA F801              movw R30,R16 
 00CC 09A4              ldd R0,y+41 
 00CE 1AA4              ldd R1,y+42 
 00D0 E00D              add R30,R0 
 00D2 F11D              adc R31,R1 
 00D4 3182              std z+1,R3 
 00D6 2082              std z+0,R2 
 00D8                   .dbline 22 
 00D8           L3: 
 00D8                   .dbline 16 
 00D8 0A8C              ldd R0,y+26 
 00DA 0394              inc R0 
 00DC 0A8E              std y+26,R0 
 00DE           L5: 
 00DE                   .dbline 16 
 00DE 8A8D              ldd R24,y+26 
 00E0 8031              cpi R24,16 
 00E2 08F4              brsh X0 
 00E4 95CF              xjmp L2 
 00E6           X0: 
 00E6                   .dbline 23 
 00E6           ; { x0=x1=x2=x3=x4=x5=x6=0; 
 00E6           ; x0=i&0x01; x1=(i>>1)&0x01; x2=(i>>2)&0x01; x3=(i>>3)&0x01; 
 00E6           ; //x4=(i>>4)&0x01; x5=(i>>5)&0x01; x6=(i>>6)&0x01; 
 00E6           ; xx=x0*8+x1*4+x2*2+x3; 
 00E6           ; dataI[xx]=dataR[i]; 
 00E6           ; } 
 00E6           ; for(i=0;i<16;i++) 
 00E6 0024              clr R0 
 00E8 0A8E              std y+26,R0 
 00EA 20C0              xjmp L9 
 00EC           L6: 
 00EC                   .dbline 24 
 00EC                   .dbline 24 
 00EC 82E0              ldi R24,2 
 00EE 0A8C              ldd R0,y+26 
 00F0 809D              mul R24,R0 
 00F2 1001              movw R2,R0 
 00F4 F101              movw R30,R2 
 00F6 09A4              ldd R0,y+41 
 00F8 1AA4              ldd R1,y+42 
 00FA E00D              add R30,R0 
 00FC F11D              adc R31,R1 
 00FE 4080              ldd R4,z+0 
 0100 5180              ldd R5,z+1 
 0102 F101              movw R30,R2 
 0104 0FA0              ldd R0,y+39 
 0106 18A4              ldd R1,y+40 
 0108 E00D              add R30,R0 
 010A F11D              adc R31,R1 
 010C 5182              std z+1,R5 
 010E 4082              std z+0,R4 
 0110                   .dbline 24 
 0110 0A8C              ldd R0,y+26 
 0112 809D              mul R24,R0 
 0114 F001              movw R30,R0 
 0116 09A4              ldd R0,y+41 
 0118 1AA4              ldd R1,y+42 
 011A E00D              add R30,R0 
 011C F11D              adc R31,R1 
 011E 2224              clr R2 
 0120 3324              clr R3 
 0122 3182              std z+1,R3 
 0124 2082              std z+0,R2 
 0126                   .dbline 24 
 0126           L7: 
 0126                   .dbline 23 
 0126 0A8C              ldd R0,y+26 
 0128 0394              inc R0 
 012A 0A8E              std y+26,R0 
 012C           L9: 
 012C                   .dbline 23 
 012C 8A8D              ldd R24,y+26 
 012E 8031              cpi R24,16 
 0130 E8F2              brlo L6 
 0132                   .dbline 26 
 0132 81E0              ldi R24,1 
 0134 90E0              ldi R25,0 
 0136 9C8F              std y+28,R25 
 0138 8B8F              std y+27,R24 
 013A           L10: 
 013A                   .dbline 26 
 013A           ; { dataR[i]=dataI[i]; dataI[i]=0; } 
 013A           ; /************** following code FFT *******************/ 
 013A           ; for(L=1;L<=4;L++) { /* for(1) */ 
 013A                   .dbline 27 
 013A           ; b=1; i=L-1; 
 013A 81E0              ldi R24,1 
 013C 90E0              ldi R25,0 
 013E 998F              std y+25,R25 
 0140 888F              std y+24,R24 
 0142                   .dbline 27 
 0142 8B8D              ldd R24,y+27 
 0144 9C8D              ldd R25,y+28 
 0146 0197              sbiw R24,1 
 0148 8A8F              std y+26,R24 
 014A 0BC0              xjmp L15 
 014C           L14: 
 014C                   .dbline 29 
 014C                   .dbline 29 
 014C 02E0              ldi R16,2 
 014E 10E0              ldi R17,0 
 0150 288D              ldd R18,y+24 
 0152 398D              ldd R19,y+25 
 0154 0E940000          xcall empy16s 
 0158 198F              std y+25,R17 
 015A 088F              std y+24,R16 
 015C                   .dbline 29 
 015C 0A8C              ldd R0,y+26 
 015E 0A94              dec R0 
 0160 0A8E              std y+26,R0 
 0162                   .dbline 29 
 0162           L15: 
 0162                   .dbline 28 
 0162           ; while(i>0)  
 0162 2224              clr R2 
 0164 0A8C              ldd R0,y+26 
 0166 2014              cp R2,R0 
 0168 88F3              brlo L14 
 016A                   .dbline 30 
 016A           ; {b=b*2; i--;} /* b= 2^(L-1) */ 
 016A           ; for(j=0;j<=b-1;j++) /* for (2) */ 
 016A EE24              clr R14 
 016C FF24              clr R15 
 016E 72C2              xjmp L20 
 0170           L17: 
 0170                   .dbline 31 
 0170           ; { p=1; i=4-L; 
 0170                   .dbline 31 
 0170 81E0              ldi R24,1 
 0172 90E0              ldi R25,0 
 0174 5C01              movw R10,R24 
 0176                   .dbline 31 
 0176 84E0              ldi R24,4 
 0178 0B8C              ldd R0,y+27 
 017A 1C8C              ldd R1,y+28 
 017C 8019              sub R24,R0 
 017E 9109              sbc R25,R1 
 0180 8A8F              std y+26,R24 
 0182 09C0              xjmp L22 
 0184           L21: 
 0184                   .dbline 33 
 0184                   .dbline 33 
 0184 02E0              ldi R16,2 
 0186 10E0              ldi R17,0 
 0188 9501              movw R18,R10 
 018A 0E940000          xcall empy16s 
 018E 5801              movw R10,R16 
 0190                   .dbline 33 
 0190 0A8C              ldd R0,y+26 
 0192 0A94              dec R0 
 0194 0A8E              std y+26,R0 
 0196                   .dbline 33 
 0196           L22: 
 0196                   .dbline 32 
 0196           ; while(i>0) /* p=pow(2,7-L)*j; */ 
 0196 2224              clr R2 
 0198 0A8C              ldd R0,y+26 
 019A 2014              cp R2,R0 
 019C 98F3              brlo L21 
 019E                   .dbline 34 
 019E           ; {p=p*2; i--;} 
 019E           ; p=p*j;for(k=j;k<16;k=k+2*b) /* for (3) */ 
 019E 9701              movw R18,R14 
 01A0 8501              movw R16,R10 
 01A2 0E940000          xcall empy16s 
 01A6 5801              movw R10,R16 
 01A8                   .dbline 34 
 01A8 6701              movw R12,R14 
 01AA 4BC2              xjmp L27 
 01AC           L24: 
 01AC                   .dbline 35 
 01AC                   .dbline 35 
 01AC 02E0              ldi R16,2 
 01AE 10E0              ldi R17,0 
 01B0 9601              movw R18,R12 
 01B2 0E940000          xcall empy16s 
 01B6 F801              movw R30,R16 
 01B8 0FA0              ldd R0,y+39 
 01BA 18A4              ldd R1,y+40 
 01BC E00D              add R30,R0 
 01BE F11D              adc R31,R1 
 01C0 0081              ldd R16,z+0 
 01C2 1181              ldd R17,z+1 
 01C4 0E940000          xcall int2fp 
 01C8 FE01              movw R30,R28 
 01CA 0083              std z+0,R16 
 01CC 1183              std z+1,R17 
 01CE 2283              std z+2,R18 
 01D0 3383              std z+3,R19 
 01D2                   .dbline 35 
 01D2 02E0              ldi R16,2 
 01D4 10E0              ldi R17,0 
 01D6 9601              movw R18,R12 
 01D8 0E940000          xcall empy16s 
 01DC F801              movw R30,R16 
 01DE 09A4              ldd R0,y+41 
 01E0 1AA4              ldd R1,y+42 
 01E2 E00D              add R30,R0 
 01E4 F11D              adc R31,R1 
 01E6 0081              ldd R16,z+0 
 01E8 1181              ldd R17,z+1 
 01EA 0E940000          xcall int2fp 
 01EE FE01              movw R30,R28 
 01F0 0483              std z+4,R16 
 01F2 1583              std z+5,R17 
 01F4 2683              std z+6,R18 
 01F6 3783              std z+7,R19 
 01F8                   .dbline 35 
 01F8 9601              movw R18,R12 
 01FA 088C              ldd R0,y+24 
 01FC 198C              ldd R1,y+25 
 01FE 200D              add R18,R0 
 0200 311D              adc R19,R1 
 0202 02E0              ldi R16,2 
 0204 10E0              ldi R17,0 
 0206 0E940000          xcall empy16s 
 020A F801              movw R30,R16 
 020C 0FA0              ldd R0,y+39 
 020E 18A4              ldd R1,y+40 
 0210 E00D              add R30,R0 
 0212 F11D              adc R31,R1 
 0214 0081              ldd R16,z+0 
 0216 1181              ldd R17,z+1 
 0218 0E940000          xcall int2fp 
 021C FE01              movw R30,R28 
 021E 0087              std z+8,R16 
 0220 1187              std z+9,R17 
 0222 2287              std z+10,R18 
 0224 3387              std z+11,R19 
 0226                   .dbline 36 
 0226 00E0              ldi R16,L28 
 022A 0E940000          xcall lpm32 
 022E 3A93              st -y,R19 
 0230 2A93              st -y,R18 
 0232 1A93              st -y,R17 
 0234 0A93              st -y,R16 
 0236 8501              movw R16,R10 
 0238 0E940000          xcall int2fp 
 023C 3A93              st -y,R19 
 023E 2A93              st -y,R18 
 0240 1A93              st -y,R17 
 0242 0A93              st -y,R16 
 0244 0E940000          xcall empy32f 
 0248 0E940000          xcall _cos 
 024C 1801              movw R2,R16 
 024E 2901              movw R4,R18 
 0250 00E0              ldi R16,L28 
 0254 0E940000          xcall lpm32 
 0258 3A93              st -y,R19 
 025A 2A93              st -y,R18 
 025C 1A93              st -y,R17 
 025E 0A93              st -y,R16 
 0260 8501              movw R16,R10 
 0262 0E940000          xcall int2fp 
 0266 3A93              st -y,R19 
 0268 2A93              st -y,R18 
 026A 1A93              st -y,R17 
 026C 0A93              st -y,R16 
 026E 0E940000          xcall empy32f 
 0272 2F92              push R2 
 0274 3F92              push R3 
 0276 4F92              push R4 
 0278 5F92              push R5 
 027A 0E940000          xcall _sin 
 027E 5F90              pop R5 
 0280 4F90              pop R4 
 0282 3F90              pop R3 
 0284 2F90              pop R2 
 0286 3801              movw R6,R16 
 0288 4901              movw R8,R18 
 028A 02E0              ldi R16,2 
 028C 10E0              ldi R17,0 
 028E 9601              movw R18,R12 
 0290 0E940000          xcall empy16s 
 0294 C801              movw R24,R16 
 0296 0FA0              ldd R0,y+39 
 0298 18A4              ldd R1,y+40 
 029A 800D              add R24,R0 
 029C 911D              adc R25,R1 
 029E FC01              movw R30,R24 
 02A0 0081              ldd R16,z+0 
 02A2 1181              ldd R17,z+1 
 02A4 0E940000          xcall int2fp 
 02A8 3A93              st -y,R19 
 02AA 2A93              st -y,R18 
 02AC 1A93              st -y,R17 
 02AE 0A93              st -y,R16 
 02B0 9601              movw R18,R12 
 02B2            ; stack offset 4 
 02B2 0C8C              ldd R0,y+28 
 02B4 1D8C              ldd R1,y+29 
 02B6 200D              add R18,R0 
 02B8 311D              adc R19,R1 
 02BA 02E0              ldi R16,2 
 02BC 10E0              ldi R17,0 
 02BE 0E940000          xcall empy16s 
 02C2 F801              movw R30,R16 
 02C4            ; stack offset 4 
 02C4 0BA4              ldd R0,y+43 
 02C6 1CA4              ldd R1,y+44 
 02C8 E00D              add R30,R0 
 02CA F11D              adc R31,R1 
 02CC 0081              ldd R16,z+0 
 02CE 1181              ldd R17,z+1 
 02D0 0E940000          xcall int2fp 
 02D4 3A93              st -y,R19 
 02D6 2A93              st -y,R18 
 02D8 1A93              st -y,R17 
 02DA 0A93              st -y,R16 
 02DC 5A92              st -y,R5 
 02DE 4A92              st -y,R4 
 02E0 3A92              st -y,R3 
 02E2 2A92              st -y,R2 
 02E4 0E940000          xcall empy32fs 
 02E8 0E940000          xcall add32fs 
 02EC 9601              movw R18,R12 
 02EE            ; stack offset 4 
 02EE 0C8C              ldd R0,y+28 
 02F0 1D8C              ldd R1,y+29 
 02F2 200D              add R18,R0 
 02F4 311D              adc R19,R1 
 02F6 02E0              ldi R16,2 
 02F8 10E0              ldi R17,0 
 02FA 0E940000          xcall empy16s 
 02FE F801              movw R30,R16 
 0300            ; stack offset 4 
 0300 0DA4              ldd R0,y+45 
 0302 1EA4              ldd R1,y+46 
 0304 E00D              add R30,R0 
 0306 F11D              adc R31,R1 
 0308 0081              ldd R16,z+0 
 030A 1181              ldd R17,z+1 
 030C 0E940000          xcall int2fp 
 0310 3A93              st -y,R19 
 0312 2A93              st -y,R18 
 0314 1A93              st -y,R17 
 0316 0A93              st -y,R16 
 0318 9A92              st -y,R9 
 031A 8A92              st -y,R8 
 031C 7A92              st -y,R7 
 031E 6A92              st -y,R6 
 0320 0E940000          xcall empy32fs 
 0324 0E940000          xcall add32f 
 0328 0E940000          xcall fp2int 
 032C FC01              movw R30,R24 
 032E 1183              std z+1,R17 
 0330 0083              std z+0,R16 
 0332                   .dbline 37 
 0332 00E0              ldi R16,L28 
 0336 0E940000          xcall lpm32 
 033A 3A93              st -y,R19 
 033C 2A93              st -y,R18 
 033E 1A93              st -y,R17 
 0340 0A93              st -y,R16 
 0342 8501              movw R16,R10 
 0344 0E940000          xcall int2fp 
 0348 3A93              st -y,R19 
 034A 2A93              st -y,R18 
 034C 1A93              st -y,R17 
 034E 0A93              st -y,R16 
 0350 0E940000          xcall empy32f 
 0354 0E940000          xcall _sin 
 0358 1801              movw R2,R16 
 035A 2901              movw R4,R18 
 035C 00E0              ldi R16,L28 
 0360 0E940000          xcall lpm32 
 0364 3A93              st -y,R19 
 0366 2A93              st -y,R18 
 0368 1A93              st -y,R17 
 036A 0A93              st -y,R16 
 036C 8501              movw R16,R10 
 036E 0E940000          xcall int2fp 
 0372 3A93              st -y,R19 
 0374 2A93              st -y,R18 
 0376 1A93              st -y,R17 
 0378 0A93              st -y,R16 
 037A 0E940000          xcall empy32f 
 037E 2F92              push R2 
 0380 3F92              push R3 
 0382 4F92              push R4 
 0384 5F92              push R5 
 0386 0E940000          xcall _cos 
 038A 5F90              pop R5 
 038C 4F90              pop R4 
 038E 3F90              pop R3 
 0390 2F90              pop R2 
 0392 3801              movw R6,R16 
 0394 4901              movw R8,R18 
 0396 02E0              ldi R16,2 
 0398 10E0              ldi R17,0 
 039A 9601              movw R18,R12 
 039C 0E940000          xcall empy16s 
 03A0 C801              movw R24,R16 
 03A2 09A4              ldd R0,y+41 
 03A4 1AA4              ldd R1,y+42 
 03A6 800D              add R24,R0 
 03A8 911D              adc R25,R1 
 03AA FC01              movw R30,R24 
 03AC 0081              ldd R16,z+0 
 03AE 1181              ldd R17,z+1 
 03B0 0E940000          xcall int2fp 
 03B4 3A93              st -y,R19 
 03B6 2A93              st -y,R18 
 03B8 1A93              st -y,R17 
 03BA 0A93              st -y,R16 
 03BC 9601              movw R18,R12 
 03BE            ; stack offset 4 
 03BE 0C8C              ldd R0,y+28 
 03C0 1D8C              ldd R1,y+29 
 03C2 200D              add R18,R0 
 03C4 311D              adc R19,R1 
 03C6 02E0              ldi R16,2 
 03C8 10E0              ldi R17,0 
 03CA 0E940000          xcall empy16s 
 03CE F801              movw R30,R16 
 03D0            ; stack offset 4 
 03D0 0BA4              ldd R0,y+43 
 03D2 1CA4              ldd R1,y+44 
 03D4 E00D              add R30,R0 
 03D6 F11D              adc R31,R1 
 03D8 0081              ldd R16,z+0 
 03DA 1181              ldd R17,z+1 
 03DC 0E940000          xcall int2fp 
 03E0 3A93              st -y,R19 
 03E2 2A93              st -y,R18 
 03E4 1A93              st -y,R17 
 03E6 0A93              st -y,R16 
 03E8 5A92              st -y,R5 
 03EA 4A92              st -y,R4 
 03EC 3A92              st -y,R3 
 03EE 2A92              st -y,R2 
 03F0 0E940000          xcall empy32fs 
 03F4 0E940000          xcall sub32fs 
 03F8 9601              movw R18,R12 
 03FA            ; stack offset 4 
 03FA 0C8C              ldd R0,y+28 
 03FC 1D8C              ldd R1,y+29 
 03FE 200D              add R18,R0 
 0400 311D              adc R19,R1 
 0402 02E0              ldi R16,2 
 0404 10E0              ldi R17,0 
 0406 0E940000          xcall empy16s 
 040A F801              movw R30,R16 
 040C            ; stack offset 4 
 040C 0DA4              ldd R0,y+45 
 040E 1EA4              ldd R1,y+46 
 0410 E00D              add R30,R0 
 0412 F11D              adc R31,R1 
 0414 0081              ldd R16,z+0 
 0416 1181              ldd R17,z+1 
 0418 0E940000          xcall int2fp 
 041C 3A93              st -y,R19 
 041E 2A93              st -y,R18 
 0420 1A93              st -y,R17 
 0422 0A93              st -y,R16 
 0424 9A92              st -y,R9 
 0426 8A92              st -y,R8 
 0428 7A92              st -y,R7 
 042A 6A92              st -y,R6 
 042C 0E940000          xcall empy32fs 
 0430 0E940000          xcall add32f 
 0434 0E940000          xcall fp2int 
 0438 FC01              movw R30,R24 
 043A 1183              std z+1,R17 
 043C 0083              std z+0,R16 
 043E                   .dbline 38 
 043E 00E0              ldi R16,L28 
 0442 0E940000          xcall lpm32 
 0446 3A93              st -y,R19 
 0448 2A93              st -y,R18 
 044A 1A93              st -y,R17 
 044C 0A93              st -y,R16 
 044E 8501              movw R16,R10 
 0450 0E940000          xcall int2fp 
 0454 3A93              st -y,R19 
 0456 2A93              st -y,R18 
 0458 1A93              st -y,R17 
 045A 0A93              st -y,R16 
 045C 0E940000          xcall empy32f 
 0460 0E940000          xcall _cos 
 0464 1801              movw R2,R16 
 0466 2901              movw R4,R18 
 0468 00E0              ldi R16,L28 
 046C 0E940000          xcall lpm32 
 0470 3A93              st -y,R19 
 0472 2A93              st -y,R18 
 0474 1A93              st -y,R17 
 0476 0A93              st -y,R16 
 0478 8501              movw R16,R10 
 047A 0E940000          xcall int2fp 
 047E 3A93              st -y,R19 
 0480 2A93              st -y,R18 
 0482 1A93              st -y,R17 
 0484 0A93              st -y,R16 
 0486 0E940000          xcall empy32f 
 048A 2F92              push R2 
 048C 3F92              push R3 
 048E 4F92              push R4 
 0490 5F92              push R5 
 0492 0E940000          xcall _sin 
 0496 5F90              pop R5 
 0498 4F90              pop R4 
 049A 3F90              pop R3 
 049C 2F90              pop R2 
 049E 3801              movw R6,R16 
 04A0 4901              movw R8,R18 
 04A2 9601              movw R18,R12 
 04A4 088C              ldd R0,y+24 
 04A6 198C              ldd R1,y+25 
 04A8 200D              add R18,R0 
 04AA 311D              adc R19,R1 
 04AC 02E0              ldi R16,2 
 04AE 10E0              ldi R17,0 
 04B0 0E940000          xcall empy16s 
 04B4 C801              movw R24,R16 
 04B6 0FA0              ldd R0,y+39 
 04B8 18A4              ldd R1,y+40 
 04BA 800D              add R24,R0 
 04BC 911D              adc R25,R1 
 04BE FE01              movw R30,R28 
 04C0 4081              ldd R20,z+0 
 04C2 5181              ldd R21,z+1 
 04C4 6281              ldd R22,z+2 
 04C6 7381              ldd R23,z+3 
 04C8 7A93              st -y,R23 
 04CA 6A93              st -y,R22 
 04CC 5A93              st -y,R21 
 04CE 4A93              st -y,R20 
 04D0 FC01              movw R30,R24 
 04D2 0081              ldd R16,z+0 
 04D4 1181              ldd R17,z+1 
 04D6 0E940000          xcall int2fp 
 04DA 3A93              st -y,R19 
 04DC 2A93              st -y,R18 
 04DE 1A93              st -y,R17 
 04E0 0A93              st -y,R16 
 04E2 5A92              st -y,R5 
 04E4 4A92              st -y,R4 
 04E6 3A92              st -y,R3 
 04E8 2A92              st -y,R2 
 04EA 0E940000          xcall empy32fs 
 04EE 0E940000          xcall sub32fs 
 04F2 9601              movw R18,R12 
 04F4            ; stack offset 4 
 04F4 0C8C              ldd R0,y+28 
 04F6 1D8C              ldd R1,y+29 
 04F8 200D              add R18,R0 
 04FA 311D              adc R19,R1 
 04FC 02E0              ldi R16,2 
 04FE 10E0              ldi R17,0 
 0500 0E940000          xcall empy16s 
 0504 F801              movw R30,R16 
 0506            ; stack offset 4 
 0506 0DA4              ldd R0,y+45 
 0508 1EA4              ldd R1,y+46 
 050A E00D              add R30,R0 
 050C F11D              adc R31,R1 
 050E 0081              ldd R16,z+0 
 0510 1181              ldd R17,z+1 
 0512 0E940000          xcall int2fp 
 0516 3A93              st -y,R19 
 0518 2A93              st -y,R18 
 051A 1A93              st -y,R17 
 051C 0A93              st -y,R16 
 051E 9A92              st -y,R9 
 0520 8A92              st -y,R8 
 0522 7A92              st -y,R7 
 0524 6A92              st -y,R6 
 0526 0E940000          xcall empy32fs 
 052A 0E940000          xcall sub32f 
 052E 0E940000          xcall fp2int 
 0532 FC01              movw R30,R24 
 0534 1183              std z+1,R17 
 0536 0083              std z+0,R16 
 0538                   .dbline 39 
 0538 00E0              ldi R16,L28 
 053C 0E940000          xcall lpm32 
 0540 3A93              st -y,R19 
 0542 2A93              st -y,R18 
 0544 1A93              st -y,R17 
 0546 0A93              st -y,R16 
 0548 8501              movw R16,R10 
 054A 0E940000          xcall int2fp 
 054E 3A93              st -y,R19 
 0550 2A93              st -y,R18 
 0552 1A93              st -y,R17 
 0554 0A93              st -y,R16 
 0556 0E940000          xcall empy32f 
 055A 0E940000          xcall _sin 
 055E 1801              movw R2,R16 
 0560 2901              movw R4,R18 
 0562 00E0              ldi R16,L28 
 0566 0E940000          xcall lpm32 
 056A 3A93              st -y,R19 
 056C 2A93              st -y,R18 
 056E 1A93              st -y,R17 
 0570 0A93              st -y,R16 
 0572 8501              movw R16,R10 
 0574 0E940000          xcall int2fp 
 0578 3A93              st -y,R19 
 057A 2A93              st -y,R18 
 057C 1A93              st -y,R17 
 057E 0A93              st -y,R16 
 0580 0E940000          xcall empy32f 
 0584 2F92              push R2 
 0586 3F92              push R3 
 0588 4F92              push R4 
 058A 5F92              push R5 
 058C 0E940000          xcall _cos 
 0590 5F90              pop R5 
 0592 4F90              pop R4 
 0594 3F90              pop R3 
 0596 2F90              pop R2 
 0598 3801              movw R6,R16 
 059A 4901              movw R8,R18 
 059C FE01              movw R30,R28 
 059E 4481              ldd R20,z+4 
 05A0 5581              ldd R21,z+5 
 05A2 6681              ldd R22,z+6 
 05A4 7781              ldd R23,z+7 
 05A6 7A93              st -y,R23 
 05A8 6A93              st -y,R22 
 05AA 5A93              st -y,R21 
 05AC 4A93              st -y,R20 
 05AE FE01              movw R30,R28 
 05B0            ; stack offset 4 
 05B0 4485              ldd R20,z+12 
 05B2 5585              ldd R21,z+13 
 05B4 6685              ldd R22,z+14 
 05B6 7785              ldd R23,z+15 
 05B8 7A93              st -y,R23 
 05BA 6A93              st -y,R22 
 05BC 5A93              st -y,R21 
 05BE 4A93              st -y,R20 
 05C0 5A92              st -y,R5 
 05C2 4A92              st -y,R4 
 05C4 3A92              st -y,R3 
 05C6 2A92              st -y,R2 
 05C8 0E940000          xcall empy32fs 
 05CC 0E940000          xcall add32fs 
 05D0 9601              movw R18,R12 
 05D2            ; stack offset 4 
 05D2 0C8C              ldd R0,y+28 
 05D4 1D8C              ldd R1,y+29 
 05D6 200D              add R18,R0 
 05D8 311D              adc R19,R1 
 05DA 02E0              ldi R16,2 
 05DC 10E0              ldi R17,0 
 05DE 0E940000          xcall empy16s 
 05E2 F801              movw R30,R16 
 05E4            ; stack offset 4 
 05E4 0DA4              ldd R0,y+45 
 05E6 1EA4              ldd R1,y+46 
 05E8 E00D              add R30,R0 
 05EA F11D              adc R31,R1 
 05EC 0081              ldd R16,z+0 
 05EE 1181              ldd R17,z+1 
 05F0 0E940000          xcall int2fp 
 05F4 3A93              st -y,R19 
 05F6 2A93              st -y,R18 
 05F8 1A93              st -y,R17 
 05FA 0A93              st -y,R16 
 05FC 9A92              st -y,R9 
 05FE 8A92              st -y,R8 
 0600 7A92              st -y,R7 
 0602 6A92              st -y,R6 
 0604 0E940000          xcall empy32fs 
 0608 0E940000          xcall sub32f 
 060C 0E940000          xcall fp2int 
 0610 1801              movw R2,R16 
 0612 9601              movw R18,R12 
 0614 088C              ldd R0,y+24 
 0616 198C              ldd R1,y+25 
 0618 200D              add R18,R0 
 061A 311D              adc R19,R1 
 061C 02E0              ldi R16,2 
 061E 10E0              ldi R17,0 
 0620 0E940000          xcall empy16s 
 0624 F801              movw R30,R16 
 0626 09A4              ldd R0,y+41 
 0628 1AA4              ldd R1,y+42 
 062A E00D              add R30,R0 
 062C F11D              adc R31,R1 
 062E 3182              std z+1,R3 
 0630 2082              std z+0,R2 
 0632                   .dbline 40 
 0632           L25: 
 0632                   .dbline 34 
 0632 02E0              ldi R16,2 
 0634 10E0              ldi R17,0 
 0636 288D              ldd R18,y+24 
 0638 398D              ldd R19,y+25 
 063A 0E940000          xcall empy16s 
 063E C00E              add R12,R16 
 0640 D11E              adc R13,R17 
 0642           L27: 
 0642                   .dbline 34 
 0642 C601              movw R24,R12 
 0644 8031              cpi R24,16 
 0646 E0E0              ldi R30,0 
 0648 9E07              cpc R25,R30 
 064A 0CF4              brge X1 
 064C AFCD              xjmp L24 
 064E           X1: 
 064E                   .dbline 41 
 064E           L18: 
 064E                   .dbline 30 
 064E C701              movw R24,R14 
 0650 0196              adiw R24,1 
 0652 7C01              movw R14,R24 
 0654           L20: 
 0654                   .dbline 30 
 0654 888D              ldd R24,y+24 
 0656 998D              ldd R25,y+25 
 0658 0197              sbiw R24,1 
 065A 8E15              cp R24,R14 
 065C 9F05              cpc R25,R15 
 065E 0CF0              brlt X2 
 0660 87CD              xjmp L17 
 0662           X2: 
 0662                   .dbline 42 
 0662           L11: 
 0662                   .dbline 26 
 0662 8B8D              ldd R24,y+27 
 0664 9C8D              ldd R25,y+28 
 0666 0196              adiw R24,1 
 0668 9C8F              std y+28,R25 
 066A 8B8F              std y+27,R24 
 066C                   .dbline 26 
 066C 84E0              ldi R24,4 
 066E 90E0              ldi R25,0 
 0670 0B8C              ldd R0,y+27 
 0672 1C8C              ldd R1,y+28 
 0674 8015              cp R24,R0 
 0676 9105              cpc R25,R1 
 0678 0CF0              brlt X3 
 067A 5FCD              xjmp L10 
 067C           X3: 
 067C                   .dbline 43 
 067C           ; { TR=dataR[k]; TI=dataI[k]; temp=dataR[k+b]; 
 067C           ; dataR[k]=dataR[k]+dataR[k+b]*cos(qq*p)+dataI[k+b]*sin(qq*p); 
 067C           ; dataI[k]=dataI[k]-dataR[k+b]*sin(qq*p)+dataI[k+b]*cos(qq*p); 
 067C           ; dataR[k+b]=TR-dataR[k+b]*cos(qq*p)-dataI[k+b]*sin(qq*p); 
 067C           ; dataI[k+b]=TI+temp*sin(qq*p)-dataI[k+b]*cos(qq*p); 
 067C           ; } /* END for (3) */ 
 067C           ; } /* END for (2) */ 
 067C           ; } /* END for (1) */ 
 067C           ; for(i=0;i<32;i++) 
 067C 0024              clr R0 
 067E 0A8E              std y+26,R0 
 0680 45C0              xjmp L32 
 0682           L29: 
 0682                   .dbline 44 
 0682           ;   {                        /* 只需要32次以下的谐波进行分析 */ 
 0682                   .dbline 45 
 0682           ; w[i]=sqrt(dataR[i]*dataR[i]+dataI[i]*dataI[i]); 
 0682 82E0              ldi R24,2 
 0684 0A8C              ldd R0,y+26 
 0686 809D              mul R24,R0 
 0688 1001              movw R2,R0 
 068A F101              movw R30,R2 
 068C 0FA0              ldd R0,y+39 
 068E 18A4              ldd R1,y+40 
 0690 E00D              add R30,R0 
 0692 F11D              adc R31,R1 
 0694 4080              ldd R4,z+0 
 0696 5180              ldd R5,z+1 
 0698 F101              movw R30,R2 
 069A 09A4              ldd R0,y+41 
 069C 1AA4              ldd R1,y+42 
 069E E00D              add R30,R0 
 06A0 F11D              adc R31,R1 
 06A2 6080              ldd R6,z+0 
 06A4 7180              ldd R7,z+1 
 06A6 9301              movw R18,R6 
 06A8 8301              movw R16,R6 
 06AA 0E940000          xcall empy16s 
 06AE 3801              movw R6,R16 
 06B0 9201              movw R18,R4 
 06B2 8201              movw R16,R4 
 06B4 0E940000          xcall empy16s 
 06B8 060D              add R16,R6 
 06BA 171D              adc R17,R7 
 06BC 0E940000          xcall int2fp 
 06C0 2F92              push R2 
 06C2 3F92              push R3 
 06C4 0E940000          xcall _sqrt 
 06C8 3F90              pop R3 
 06CA 2F90              pop R2 
 06CC 80E0              ldi R24,<_w 
 06CE 90E0              ldi R25,>_w 
 06D0 F101              movw R30,R2 
 06D2 E80F              add R30,R24 
 06D4 F91F              adc R31,R25 
 06D6 0E940000          xcall fp2int 
 06DA 1183              std z+1,R17 
 06DC 0083              std z+0,R16 
 06DE                   .dbline 46 
 06DE           ;    if(!i) 
 06DE 0A8C              ldd R0,y+26 
 06E0 0020              tst R0 
 06E2 89F4              brne L33 
 06E4                   .dbline 47 
 06E4           ;    { 
 06E4                   .dbline 48 
 06E4           ;     w[i]=w[i]/64; 
 06E4 82E0              ldi R24,2 
 06E6 809D              mul R24,R0 
 06E8 1001              movw R2,R0 
 06EA 80E0              ldi R24,<_w 
 06EC 90E0              ldi R25,>_w 
 06EE 280E              add R2,R24 
 06F0 391E              adc R3,R25 
 06F2 20E4              ldi R18,64 
 06F4 30E0              ldi R19,0 
 06F6 F101              movw R30,R2 
 06F8 0081              ldd R16,z+0 
 06FA 1181              ldd R17,z+1 
 06FC 0E940000          xcall div16s 
 0700 F101              movw R30,R2 
 0702 1183              std z+1,R17 
 0704 0083              std z+0,R16 
 0706                   .dbline 49 
 0706           ;    } 
 0706           L33: 
 0706                   .dbline 50 
 0706           L30: 
 0706                   .dbline 43 
 0706 0A8C              ldd R0,y+26 
 0708 0394              inc R0 
 070A 0A8E              std y+26,R0 
 070C           L32: 
 070C                   .dbline 43 
 070C 8A8D              ldd R24,y+26 
 070E 8032              cpi R24,32 
 0710 08F4              brsh X4 
 0712 B7CF              xjmp L29 
 0714           X4: 
 0714                   .dbline 51 
 0714           ;   } 
 0714           ; w[0]=w[0]/2; 
 0714 22E0              ldi R18,2 
 0716 30E0              ldi R19,0 
 0718 00910000          lds R16,_w 
 071C 10910100          lds R17,_w+1 
 0720 0E940000          xcall div16s 
 0724 10930100          sts _w+1,R17 
 0728 00930000          sts _w,R16 
 072C                   .dbline -2 
 072C           L1: 
 072C 6D96              adiw R28,29 
 072E 0E940000          xcall pop_gset5 
 0732 2496              adiw R28,4 
 0734                   .dbline 0 ; func end 
 0734 0895              ret 
 0736                   .dbsym l x6 22 I 
 0736                   .dbsym l x5 20 I 
 0736                   .dbsym l x4 18 I 
 0736                   .dbsym l xx 16 I 
 0736                   .dbsym l x3 14 I 
 0736                   .dbsym l x2 12 I 
 0736                   .dbsym r x1 12 I 
 0736                   .dbsym r x0 10 I 
 0736                   .dbsym l L 27 I 
 0736                   .dbsym r j 14 I 
 0736                   .dbsym l temp 8 D 
 0736                   .dbsym l TI 4 D 
 0736                   .dbsym l TR 0 D 
 0736                   .dbsym l i 26 c 
 0736                   .dbsym r p 10 I 
 0736                   .dbsym l b 24 I 
 0736                   .dbsym r k 12 I 
 0736                   .dbsym l dataI 41 pI 
 0736                   .dbsym l dataR 39 pI 
 0736                   .dbend 
 0736                   .dbfunc e main _main fV 
                        .even 
 0736           _main:: 
 0736                   .dbline -1 
 0736                   .dbline 55 
 0736           ; } /* END FFT */ 
 0736           ;  
 0736           ; void main () 
 0736           ;   { 
 0736                   .dbline 56 
 0736           ;     FFT(dataR,dataI); 
 0736 20E0              ldi R18,<_dataI 
 0738 30E0              ldi R19,>_dataI 
 073A 00E0              ldi R16,<_dataR 
 073C 10E0              ldi R17,>_dataR 
 073E 60DC              xcall _FFT 
 0740           L36: 
 0740                   .dbline 57 
 0740           L37: 
 0740                   .dbline 57 
 0740 FFCF              xjmp L36 
 0742           X5: 
 0742                   .dbline -2 
 0742           L35: 
 0742                   .dbline 0 ; func end 
 0742 0895              ret 
 0744                   .dbend 
                        .area bss(ram, con, rel) 
 0000                   .dbfile D:\HJN\Design\AVR\fft\fffff.c 
 0000           _w:: 
 0000                   .blkb 64 
 0040                   .dbsym e w _w A[64:32]I 
 0040           _dataI:: 
 0040                   .blkb 32 
 0060                   .dbsym e dataI _dataI A[32:16]I 
                        .area lit(rom, con, rel) 
 0000           L28: 
 0000 DA0FC93E          .word 0xfda,0x3ec9