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


                        .module fftbook.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\fftbook.c 
 0020                   .dbsym e dataR _dataR A[32:16]I 
                        .area text(rom, con, rel) 
 0000                   .dbfile D:\HJN\Design\AVR\fft\fftbook.c 
 0000                   .dbfunc e CHANGE _CHANGE fV 
 0000           ;             b6 -> R22,R23 
 0000           ;             b5 -> R22,R23 
 0000           ;             b4 -> R22,R23 
 0000           ;            all -> R20,R21 
 0000           ;             b3 -> R22,R23 
 0000           ;             b2 -> R10,R11 
 0000           ;             b1 -> R14,R15 
 0000           ;             b0 -> R12,R13 
                        .even 
 0000           _CHANGE:: 
 0000 0E940000          xcall push_gset5 
 0004                   .dbline -1 
 0004                   .dbline 15 
 0004           ; #include  
 0004           ; #define uint unsigned int 
 0004           ; #define uchar unsigned char 
 0004           ; #define PI 3.1415926 
 0004           ;  
 0004           ; uint x0,x1,x2,x3,x4,x5,x6; 
 0004           ; int L,i,j,k,b,p; 
 0004           ; uchar w[32]; 
 0004           ; uint TR,TI,temp; 
 0004           ;  
 0004           ; int dataR[]={5,5,5,5,0,0,0,0,5,5,5,5,0,0,0,0}; 
 0004           ; int dataI[16]; 
 0004           ;  
 0004           ; void CHANGE() 
 0004           ;  {                              //i为原始存放位置,最后得invert_pos为倒位序存放位置 
 0004                   .dbline 17 
 0004           ;   int b0 , b1 , b2 , b3 , b4 , b5 , b6 , all; 
 0004           ;       b0 = b1 = b2 = b3 = b4 = b5 = b6 = all = 0; 
 0004 4427              clr R20 
 0006 5527              clr R21 
 0008 6627              clr R22 
 000A 7727              clr R23 
 000C AA24              clr R10 
 000E BB24              clr R11 
 0010 EE24              clr R14 
 0012 FF24              clr R15 
 0014 CC24              clr R12 
 0016 DD24              clr R13 
 0018                   .dbline 18 
 0018           ;   b0  = i&0x01;  
 0018 80914E00          lds R24,_i 
 001C 90914F00          lds R25,_i+1 
 0020 8170              andi R24,1 
 0022 9070              andi R25,0 
 0024 6C01              movw R12,R24 
 0026                   .dbline 19 
 0026           ;   b1  = (i>>1)&0x01;  
 0026 80914E00          lds R24,_i 
 002A 90914F00          lds R25,_i+1 
 002E 9595              asr R25 
 0030 8795              ror R24 
 0032 8170              andi R24,1 
 0034 9070              andi R25,0 
 0036 7C01              movw R14,R24 
 0038                   .dbline 20 
 0038           ;   b2  = (i>>2)&0x01; 
 0038 80914E00          lds R24,_i 
 003C 90914F00          lds R25,_i+1 
 0040 9595              asr R25 
 0042 8795              ror R24 
 0044 9595              asr R25 
 0046 8795              ror R24 
 0048 8170              andi R24,1 
 004A 9070              andi R25,0 
 004C 5C01              movw R10,R24 
 004E                   .dbline 21 
 004E           ;   b3  = (i>>3)&0x01; 
 004E 60914E00          lds R22,_i 
 0052 70914F00          lds R23,_i+1 
 0056 7595              asr R23 
 0058 6795              ror R22 
 005A 7595              asr R23 
 005C 6795              ror R22 
 005E 7595              asr R23 
 0060 6795              ror R22 
 0062 6170              andi R22,1 
 0064 7070              andi R23,0 
 0066                   .dbline 25 
 0066           ;  // b4  = (i>>4)&0x01; 
 0066           ;   //b5  = (i>>5)&0x01; 
 0066           ;  // b6  = (i>>6)&0x01; 
 0066           ;   all = b0*8 + b1*4 + b2*2 + b3;   //*8 + b4*4 + b5*2 + b6; 
 0066 04E0              ldi R16,4 
 0068 10E0              ldi R17,0 
 006A 9701              movw R18,R14 
 006C 0E940000          xcall empy16s 
 0070 1801              movw R2,R16 
 0072 08E0              ldi R16,8 
 0074 10E0              ldi R17,0 
 0076 9601              movw R18,R12 
 0078 0E940000          xcall empy16s 
 007C A801              movw R20,R16 
 007E 420D              add R20,R2 
 0080 531D              adc R21,R3 
 0082 02E0              ldi R16,2 
 0084 10E0              ldi R17,0 
 0086 9501              movw R18,R10 
 0088 0E940000          xcall empy16s 
 008C 400F              add R20,R16 
 008E 511F              adc R21,R17 
 0090 460F              add R20,R22 
 0092 571F              adc R21,R23 
 0094                   .dbline 26 
 0094           ;   dataI[all] = dataR[i]; 
 0094 20914E00          lds R18,_i 
 0098 30914F00          lds R19,_i+1 
 009C 02E0              ldi R16,2 
 009E 10E0              ldi R17,0 
 00A0 0E940000          xcall empy16s 
 00A4 F801              movw R30,R16 
 00A6 80E0              ldi R24,<_dataR 
 00A8 90E0              ldi R25,>_dataR 
 00AA E80F              add R30,R24 
 00AC F91F              adc R31,R25 
 00AE 2080              ldd R2,z+0 
 00B0 3180              ldd R3,z+1 
 00B2 02E0              ldi R16,2 
 00B4 10E0              ldi R17,0 
 00B6 9A01              movw R18,R20 
 00B8 0E940000          xcall empy16s 
 00BC F801              movw R30,R16 
 00BE 80E0              ldi R24,<_dataI 
 00C0 90E0              ldi R25,>_dataI 
 00C2 E80F              add R30,R24 
 00C4 F91F              adc R31,R25 
 00C6 3182              std z+1,R3 
 00C8 2082              std z+0,R2 
 00CA                   .dbline -2 
 00CA           L1: 
 00CA 0E940000          xcall pop_gset5 
 00CE                   .dbline 0 ; func end 
 00CE 0895              ret 
 00D0                   .dbsym r b6 22 I 
 00D0                   .dbsym r b5 22 I 
 00D0                   .dbsym r b4 22 I 
 00D0                   .dbsym r all 20 I 
 00D0                   .dbsym r b3 22 I 
 00D0                   .dbsym r b2 10 I 
 00D0                   .dbsym r b1 14 I 
 00D0                   .dbsym r b0 12 I 
 00D0                   .dbend 
 00D0                   .dbfunc e FFTT _FFTT fV 
                        .even 
 00D0           _FFTT:: 
 00D0                   .dbline -1 
 00D0                   .dbline 31 
 00D0           ;  } 
 00D0           ;  
 00D0           ;   
 00D0           ; void FFTT() 
 00D0           ;  {  TR=dataR[k];  
 00D0                   .dbline 31 
 00D0 20914A00          lds R18,_k 
 00D4 30914B00          lds R19,_k+1 
 00D8 02E0              ldi R16,2 
 00DA 10E0              ldi R17,0 
 00DC 0E940000          xcall empy16s 
 00E0 F801              movw R30,R16 
 00E2 80E0              ldi R24,<_dataR 
 00E4 90E0              ldi R25,>_dataR 
 00E6 E80F              add R30,R24 
 00E8 F91F              adc R31,R25 
 00EA 2080              ldd R2,z+0 
 00EC 3180              ldd R3,z+1 
 00EE 30922500          sts _TR+1,R3 
 00F2 20922400          sts _TR,R2 
 00F6                   .dbline 32 
 00F6           ;     TI=dataI[k]; 
 00F6 20914A00          lds R18,_k 
 00FA 30914B00          lds R19,_k+1 
 00FE 02E0              ldi R16,2 
 0100 10E0              ldi R17,0 
 0102 0E940000          xcall empy16s 
 0106 F801              movw R30,R16 
 0108 80E0              ldi R24,<_dataI 
 010A 90E0              ldi R25,>_dataI 
 010C E80F              add R30,R24 
 010E F91F              adc R31,R25 
 0110 2080              ldd R2,z+0 
 0112 3180              ldd R3,z+1 
 0114 30922300          sts _TI+1,R3 
 0118 20922200          sts _TI,R2 
 011C                   .dbline 33 
 011C           ;     temp=dataR[k+b];  
 011C 20904800          lds R2,_b 
 0120 30904900          lds R3,_b+1 
 0124 20914A00          lds R18,_k 
 0128 30914B00          lds R19,_k+1 
 012C 220D              add R18,R2 
 012E 331D              adc R19,R3 
 0130 02E0              ldi R16,2 
 0132 10E0              ldi R17,0 
 0134 0E940000          xcall empy16s 
 0138 F801              movw R30,R16 
 013A 80E0              ldi R24,<_dataR 
 013C 90E0              ldi R25,>_dataR 
 013E E80F              add R30,R24 
 0140 F91F              adc R31,R25 
 0142 2080              ldd R2,z+0 
 0144 3180              ldd R3,z+1 
 0146 30922100          sts _temp+1,R3 
 014A 20922000          sts _temp,R2 
 014E                   .dbline 34 
 014E           ;     dataR[k]=dataR[k]+dataR[k+b]*cos(2*PI*p/16)+dataI[k+b]*sin(2*PI*p/16); 
 014E 00E0              ldi R16,L3 
 0152 0E940000          xcall lpm32 
 0156 3A93              st -y,R19 
 0158 2A93              st -y,R18 
 015A 1A93              st -y,R17 
 015C 0A93              st -y,R16 
 015E 00914600          lds R16,_p 
 0162 10914700          lds R17,_p+1 
 0166 0E940000          xcall int2fp 
 016A 3A93              st -y,R19 
 016C 2A93              st -y,R18 
 016E 1A93              st -y,R17 
 0170 0A93              st -y,R16 
 0172 0E940000          xcall empy32fs 
 0176 00E0              ldi R16,L4 
 017A 0E940000          xcall lpm32 
 017E 3A93              st -y,R19 
 0180 2A93              st -y,R18 
 0182 1A93              st -y,R17 
 0184 0A93              st -y,R16 
 0186 0E940000          xcall div32f 
 018A 0E940000          xcall _cos 
 018E 1801              movw R2,R16 
 0190 2901              movw R4,R18 
 0192 00E0              ldi R16,L3 
 0196 0E940000          xcall lpm32 
 019A 3A93              st -y,R19 
 019C 2A93              st -y,R18 
 019E 1A93              st -y,R17 
 01A0 0A93              st -y,R16 
 01A2 00914600          lds R16,_p 
 01A6 10914700          lds R17,_p+1 
 01AA 0E940000          xcall int2fp 
 01AE 3A93              st -y,R19 
 01B0 2A93              st -y,R18 
 01B2 1A93              st -y,R17 
 01B4 0A93              st -y,R16 
 01B6 0E940000          xcall empy32fs 
 01BA 00E0              ldi R16,L4 
 01BE 0E940000          xcall lpm32 
 01C2 3A93              st -y,R19 
 01C4 2A93              st -y,R18 
 01C6 1A93              st -y,R17 
 01C8 0A93              st -y,R16 
 01CA 0E940000          xcall div32f 
 01CE 2F92              push R2 
 01D0 3F92              push R3 
 01D2 4F92              push R4 
 01D4 5F92              push R5 
 01D6 0E940000          xcall _sin 
 01DA 5F90              pop R5 
 01DC 4F90              pop R4 
 01DE 3F90              pop R3 
 01E0 2F90              pop R2 
 01E2 3801              movw R6,R16 
 01E4 4901              movw R8,R18 
 01E6 20914A00          lds R18,_k 
 01EA 30914B00          lds R19,_k+1 
 01EE 02E0              ldi R16,2 
 01F0 10E0              ldi R17,0 
 01F2 0E940000          xcall empy16s 
 01F6 80E0              ldi R24,<_dataR 
 01F8 90E0              ldi R25,>_dataR 
 01FA F801              movw R30,R16 
 01FC E80F              add R30,R24 
 01FE F91F              adc R31,R25 
 0200 CF01              movw R24,R30 
 0202 0081              ldd R16,z+0 
 0204 1181              ldd R17,z+1 
 0206 0E940000          xcall int2fp 
 020A 3A93              st -y,R19 
 020C 2A93              st -y,R18 
 020E 1A93              st -y,R17 
 0210 0A93              st -y,R16 
 0212 E0914800          lds R30,_b 
 0216 F0914900          lds R31,_b+1 
 021A 20914A00          lds R18,_k 
 021E 30914B00          lds R19,_k+1 
 0222 2E0F              add R18,R30 
 0224 3F1F              adc R19,R31 
 0226 02E0              ldi R16,2 
 0228 10E0              ldi R17,0 
 022A 0E940000          xcall empy16s 
 022E F801              movw R30,R16 
 0230 A0E0              ldi R26,<_dataR 
 0232 B0E0              ldi R27,>_dataR 
 0234 EA0F              add R30,R26 
 0236 FB1F              adc R31,R27 
 0238 0081              ldd R16,z+0 
 023A 1181              ldd R17,z+1 
 023C 0E940000          xcall int2fp 
 0240 3A93              st -y,R19 
 0242 2A93              st -y,R18 
 0244 1A93              st -y,R17 
 0246 0A93              st -y,R16 
 0248 5A92              st -y,R5 
 024A 4A92              st -y,R4 
 024C 3A92              st -y,R3 
 024E 2A92              st -y,R2 
 0250 0E940000          xcall empy32fs 
 0254 0E940000          xcall add32fs 
 0258 20904800          lds R2,_b 
 025C 30904900          lds R3,_b+1 
 0260 20914A00          lds R18,_k 
 0264 30914B00          lds R19,_k+1 
 0268 220D              add R18,R2 
 026A 331D              adc R19,R3 
 026C 02E0              ldi R16,2 
 026E 10E0              ldi R17,0 
 0270 0E940000          xcall empy16s 
 0274 F801              movw R30,R16 
 0276 A0E0              ldi R26,<_dataI 
 0278 B0E0              ldi R27,>_dataI 
 027A EA0F              add R30,R26 
 027C FB1F              adc R31,R27 
 027E 0081              ldd R16,z+0 
 0280 1181              ldd R17,z+1 
 0282 0E940000          xcall int2fp 
 0286 3A93              st -y,R19 
 0288 2A93              st -y,R18 
 028A 1A93              st -y,R17 
 028C 0A93              st -y,R16 
 028E 9A92              st -y,R9 
 0290 8A92              st -y,R8 
 0292 7A92              st -y,R7 
 0294 6A92              st -y,R6 
 0296 0E940000          xcall empy32fs 
 029A 0E940000          xcall add32f 
 029E 0E940000          xcall fp2int 
 02A2 FC01              movw R30,R24 
 02A4 1183              std z+1,R17 
 02A6 0083              std z+0,R16 
 02A8                   .dbline 35 
 02A8           ;     dataI[k]=dataI[k]-dataR[k+b]*sin(2*PI*p/16)+dataI[k+b]*cos(2*PI*p/16); 
 02A8 00E0              ldi R16,L3 
 02AC 0E940000          xcall lpm32 
 02B0 3A93              st -y,R19 
 02B2 2A93              st -y,R18 
 02B4 1A93              st -y,R17 
 02B6 0A93              st -y,R16 
 02B8 00914600          lds R16,_p 
 02BC 10914700          lds R17,_p+1 
 02C0 0E940000          xcall int2fp 
 02C4 3A93              st -y,R19 
 02C6 2A93              st -y,R18 
 02C8 1A93              st -y,R17 
 02CA 0A93              st -y,R16 
 02CC 0E940000          xcall empy32fs 
 02D0 00E0              ldi R16,L4 
 02D4 0E940000          xcall lpm32 
 02D8 3A93              st -y,R19 
 02DA 2A93              st -y,R18 
 02DC 1A93              st -y,R17 
 02DE 0A93              st -y,R16 
 02E0 0E940000          xcall div32f 
 02E4 0E940000          xcall _sin 
 02E8 1801              movw R2,R16 
 02EA 2901              movw R4,R18 
 02EC 00E0              ldi R16,L3 
 02F0 0E940000          xcall lpm32 
 02F4 3A93              st -y,R19 
 02F6 2A93              st -y,R18 
 02F8 1A93              st -y,R17 
 02FA 0A93              st -y,R16 
 02FC 00914600          lds R16,_p 
 0300 10914700          lds R17,_p+1 
 0304 0E940000          xcall int2fp 
 0308 3A93              st -y,R19 
 030A 2A93              st -y,R18 
 030C 1A93              st -y,R17 
 030E 0A93              st -y,R16 
 0310 0E940000          xcall empy32fs 
 0314 00E0              ldi R16,L4 
 0318 0E940000          xcall lpm32 
 031C 3A93              st -y,R19 
 031E 2A93              st -y,R18 
 0320 1A93              st -y,R17 
 0322 0A93              st -y,R16 
 0324 0E940000          xcall div32f 
 0328 2F92              push R2 
 032A 3F92              push R3 
 032C 4F92              push R4 
 032E 5F92              push R5 
 0330 0E940000          xcall _cos 
 0334 5F90              pop R5 
 0336 4F90              pop R4 
 0338 3F90              pop R3 
 033A 2F90              pop R2 
 033C 3801              movw R6,R16 
 033E 4901              movw R8,R18 
 0340 20914A00          lds R18,_k 
 0344 30914B00          lds R19,_k+1 
 0348 02E0              ldi R16,2 
 034A 10E0              ldi R17,0 
 034C 0E940000          xcall empy16s 
 0350 80E0              ldi R24,<_dataI 
 0352 90E0              ldi R25,>_dataI 
 0354 F801              movw R30,R16 
 0356 E80F              add R30,R24 
 0358 F91F              adc R31,R25 
 035A CF01              movw R24,R30 
 035C 0081              ldd R16,z+0 
 035E 1181              ldd R17,z+1 
 0360 0E940000          xcall int2fp 
 0364 3A93              st -y,R19 
 0366 2A93              st -y,R18 
 0368 1A93              st -y,R17 
 036A 0A93              st -y,R16 
 036C E0914800          lds R30,_b 
 0370 F0914900          lds R31,_b+1 
 0374 20914A00          lds R18,_k 
 0378 30914B00          lds R19,_k+1 
 037C 2E0F              add R18,R30 
 037E 3F1F              adc R19,R31 
 0380 02E0              ldi R16,2 
 0382 10E0              ldi R17,0 
 0384 0E940000          xcall empy16s 
 0388 F801              movw R30,R16 
 038A A0E0              ldi R26,<_dataR 
 038C B0E0              ldi R27,>_dataR 
 038E EA0F              add R30,R26 
 0390 FB1F              adc R31,R27 
 0392 0081              ldd R16,z+0 
 0394 1181              ldd R17,z+1 
 0396 0E940000          xcall int2fp 
 039A 3A93              st -y,R19 
 039C 2A93              st -y,R18 
 039E 1A93              st -y,R17 
 03A0 0A93              st -y,R16 
 03A2 5A92              st -y,R5 
 03A4 4A92              st -y,R4 
 03A6 3A92              st -y,R3 
 03A8 2A92              st -y,R2 
 03AA 0E940000          xcall empy32fs 
 03AE 0E940000          xcall sub32fs 
 03B2 20904800          lds R2,_b 
 03B6 30904900          lds R3,_b+1 
 03BA 20914A00          lds R18,_k 
 03BE 30914B00          lds R19,_k+1 
 03C2 220D              add R18,R2 
 03C4 331D              adc R19,R3 
 03C6 02E0              ldi R16,2 
 03C8 10E0              ldi R17,0 
 03CA 0E940000          xcall empy16s 
 03CE F801              movw R30,R16 
 03D0 A0E0              ldi R26,<_dataI 
 03D2 B0E0              ldi R27,>_dataI 
 03D4 EA0F              add R30,R26 
 03D6 FB1F              adc R31,R27 
 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 9A92              st -y,R9 
 03EA 8A92              st -y,R8 
 03EC 7A92              st -y,R7 
 03EE 6A92              st -y,R6 
 03F0 0E940000          xcall empy32fs 
 03F4 0E940000          xcall add32f 
 03F8 0E940000          xcall fp2int 
 03FC FC01              movw R30,R24 
 03FE 1183              std z+1,R17 
 0400 0083              std z+0,R16 
 0402                   .dbline 36 
 0402           ;     dataR[k+b]=TR-dataR[k+b]*cos(2*PI*p/16)-dataI[k+b]*sin(2*PI*p/16); 
 0402 00E0              ldi R16,L3 
 0406 0E940000          xcall lpm32 
 040A 3A93              st -y,R19 
 040C 2A93              st -y,R18 
 040E 1A93              st -y,R17 
 0410 0A93              st -y,R16 
 0412 00914600          lds R16,_p 
 0416 10914700          lds R17,_p+1 
 041A 0E940000          xcall int2fp 
 041E 3A93              st -y,R19 
 0420 2A93              st -y,R18 
 0422 1A93              st -y,R17 
 0424 0A93              st -y,R16 
 0426 0E940000          xcall empy32fs 
 042A 00E0              ldi R16,L4 
 042E 0E940000          xcall lpm32 
 0432 3A93              st -y,R19 
 0434 2A93              st -y,R18 
 0436 1A93              st -y,R17 
 0438 0A93              st -y,R16 
 043A 0E940000          xcall div32f 
 043E 0E940000          xcall _cos 
 0442 1801              movw R2,R16 
 0444 2901              movw R4,R18 
 0446 00E0              ldi R16,L3 
 044A 0E940000          xcall lpm32 
 044E 3A93              st -y,R19 
 0450 2A93              st -y,R18 
 0452 1A93              st -y,R17 
 0454 0A93              st -y,R16 
 0456 00914600          lds R16,_p 
 045A 10914700          lds R17,_p+1 
 045E 0E940000          xcall int2fp 
 0462 3A93              st -y,R19 
 0464 2A93              st -y,R18 
 0466 1A93              st -y,R17 
 0468 0A93              st -y,R16 
 046A 0E940000          xcall empy32fs 
 046E 00E0              ldi R16,L4 
 0472 0E940000          xcall lpm32 
 0476 3A93              st -y,R19 
 0478 2A93              st -y,R18 
 047A 1A93              st -y,R17 
 047C 0A93              st -y,R16 
 047E 0E940000          xcall div32f 
 0482 2F92              push R2 
 0484 3F92              push R3 
 0486 4F92              push R4 
 0488 5F92              push R5 
 048A 0E940000          xcall _sin 
 048E 5F90              pop R5 
 0490 4F90              pop R4 
 0492 3F90              pop R3 
 0494 2F90              pop R2 
 0496 3801              movw R6,R16 
 0498 4901              movw R8,R18 
 049A 80914800          lds R24,_b 
 049E 90914900          lds R25,_b+1 
 04A2 20914A00          lds R18,_k 
 04A6 30914B00          lds R19,_k+1 
 04AA 280F              add R18,R24 
 04AC 391F              adc R19,R25 
 04AE 02E0              ldi R16,2 
 04B0 10E0              ldi R17,0 
 04B2 0E940000          xcall empy16s 
 04B6 C801              movw R24,R16 
 04B8 E0E0              ldi R30,<_dataR 
 04BA F0E0              ldi R31,>_dataR 
 04BC 8E0F              add R24,R30 
 04BE 9F1F              adc R25,R31 
 04C0 00E0              ldi R16,L5 
 04C4 0E940000          xcall lpm32 
 04C8 3A93              st -y,R19 
 04CA 2A93              st -y,R18 
 04CC 1A93              st -y,R17 
 04CE 0A93              st -y,R16 
 04D0 00912400          lds R16,_TR 
 04D4 10912500          lds R17,_TR+1 
 04D8 1695              lsr R17 
 04DA 0795              ror R16 
 04DC 0E940000          xcall int2fp 
 04E0 3A93              st -y,R19 
 04E2 2A93              st -y,R18 
 04E4 1A93              st -y,R17 
 04E6 0A93              st -y,R16 
 04E8 0E940000          xcall empy32fs 
 04EC 00912400          lds R16,_TR 
 04F0 10912500          lds R17,_TR+1 
 04F4 0170              andi R16,1 
 04F6 1070              andi R17,0 
 04F8 0E940000          xcall int2fp 
 04FC 3A93              st -y,R19 
 04FE 2A93              st -y,R18 
 0500 1A93              st -y,R17 
 0502 0A93              st -y,R16 
 0504 0E940000          xcall add32fs 
 0508 FC01              movw R30,R24 
 050A 0081              ldd R16,z+0 
 050C 1181              ldd R17,z+1 
 050E 0E940000          xcall int2fp 
 0512 3A93              st -y,R19 
 0514 2A93              st -y,R18 
 0516 1A93              st -y,R17 
 0518 0A93              st -y,R16 
 051A 5A92              st -y,R5 
 051C 4A92              st -y,R4 
 051E 3A92              st -y,R3 
 0520 2A92              st -y,R2 
 0522 0E940000          xcall empy32fs 
 0526 0E940000          xcall sub32fs 
 052A 20904800          lds R2,_b 
 052E 30904900          lds R3,_b+1 
 0532 20914A00          lds R18,_k 
 0536 30914B00          lds R19,_k+1 
 053A 220D              add R18,R2 
 053C 331D              adc R19,R3 
 053E 02E0              ldi R16,2 
 0540 10E0              ldi R17,0 
 0542 0E940000          xcall empy16s 
 0546 F801              movw R30,R16 
 0548 A0E0              ldi R26,<_dataI 
 054A B0E0              ldi R27,>_dataI 
 054C EA0F              add R30,R26 
 054E FB1F              adc R31,R27 
 0550 0081              ldd R16,z+0 
 0552 1181              ldd R17,z+1 
 0554 0E940000          xcall int2fp 
 0558 3A93              st -y,R19 
 055A 2A93              st -y,R18 
 055C 1A93              st -y,R17 
 055E 0A93              st -y,R16 
 0560 9A92              st -y,R9 
 0562 8A92              st -y,R8 
 0564 7A92              st -y,R7 
 0566 6A92              st -y,R6 
 0568 0E940000          xcall empy32fs 
 056C 0E940000          xcall sub32f 
 0570 0E940000          xcall fp2int 
 0574 FC01              movw R30,R24 
 0576 1183              std z+1,R17 
 0578 0083              std z+0,R16 
 057A                   .dbline 37 
 057A           ;     dataI[k+b]=TI+temp*sin(2*PI*p/16)-dataI[k+b]*cos(2*PI*p/16); 
 057A 00E0              ldi R16,L3 
 057E 0E940000          xcall lpm32 
 0582 3A93              st -y,R19 
 0584 2A93              st -y,R18 
 0586 1A93              st -y,R17 
 0588 0A93              st -y,R16 
 058A 00914600          lds R16,_p 
 058E 10914700          lds R17,_p+1 
 0592 0E940000          xcall int2fp 
 0596 3A93              st -y,R19 
 0598 2A93              st -y,R18 
 059A 1A93              st -y,R17 
 059C 0A93              st -y,R16 
 059E 0E940000          xcall empy32fs 
 05A2 00E0              ldi R16,L4 
 05A6 0E940000          xcall lpm32 
 05AA 3A93              st -y,R19 
 05AC 2A93              st -y,R18 
 05AE 1A93              st -y,R17 
 05B0 0A93              st -y,R16 
 05B2 0E940000          xcall div32f 
 05B6 0E940000          xcall _sin 
 05BA 1801              movw R2,R16 
 05BC 2901              movw R4,R18 
 05BE 00E0              ldi R16,L3 
 05C2 0E940000          xcall lpm32 
 05C6 3A93              st -y,R19 
 05C8 2A93              st -y,R18 
 05CA 1A93              st -y,R17 
 05CC 0A93              st -y,R16 
 05CE 00914600          lds R16,_p 
 05D2 10914700          lds R17,_p+1 
 05D6 0E940000          xcall int2fp 
 05DA 3A93              st -y,R19 
 05DC 2A93              st -y,R18 
 05DE 1A93              st -y,R17 
 05E0 0A93              st -y,R16 
 05E2 0E940000          xcall empy32fs 
 05E6 00E0              ldi R16,L4 
 05EA 0E940000          xcall lpm32 
 05EE 3A93              st -y,R19 
 05F0 2A93              st -y,R18 
 05F2 1A93              st -y,R17 
 05F4 0A93              st -y,R16 
 05F6 0E940000          xcall div32f 
 05FA 2F92              push R2 
 05FC 3F92              push R3 
 05FE 4F92              push R4 
 0600 5F92              push R5 
 0602 0E940000          xcall _cos 
 0606 5F90              pop R5 
 0608 4F90              pop R4 
 060A 3F90              pop R3 
 060C 2F90              pop R2 
 060E 3801              movw R6,R16 
 0610 4901              movw R8,R18 
 0612 00E0              ldi R16,L5 
 0616 0E940000          xcall lpm32 
 061A 3A93              st -y,R19 
 061C 2A93              st -y,R18 
 061E 1A93              st -y,R17 
 0620 0A93              st -y,R16 
 0622 00912200          lds R16,_TI 
 0626 10912300          lds R17,_TI+1 
 062A 1695              lsr R17 
 062C 0795              ror R16 
 062E 0E940000          xcall int2fp 
 0632 3A93              st -y,R19 
 0634 2A93              st -y,R18 
 0636 1A93              st -y,R17 
 0638 0A93              st -y,R16 
 063A 0E940000          xcall empy32fs 
 063E 00912200          lds R16,_TI 
 0642 10912300          lds R17,_TI+1 
 0646 0170              andi R16,1 
 0648 1070              andi R17,0 
 064A 0E940000          xcall int2fp 
 064E 3A93              st -y,R19 
 0650 2A93              st -y,R18 
 0652 1A93              st -y,R17 
 0654 0A93              st -y,R16 
 0656 0E940000          xcall add32fs 
 065A 00E0              ldi R16,L5 
 065E 0E940000          xcall lpm32 
 0662 3A93              st -y,R19 
 0664 2A93              st -y,R18 
 0666 1A93              st -y,R17 
 0668 0A93              st -y,R16 
 066A 00912000          lds R16,_temp 
 066E 10912100          lds R17,_temp+1 
 0672 1695              lsr R17 
 0674 0795              ror R16 
 0676 0E940000          xcall int2fp 
 067A 3A93              st -y,R19 
 067C 2A93              st -y,R18 
 067E 1A93              st -y,R17 
 0680 0A93              st -y,R16 
 0682 0E940000          xcall empy32fs 
 0686 00912000          lds R16,_temp 
 068A 10912100          lds R17,_temp+1 
 068E 0170              andi R16,1 
 0690 1070              andi R17,0 
 0692 0E940000          xcall int2fp 
 0696 3A93              st -y,R19 
 0698 2A93              st -y,R18 
 069A 1A93              st -y,R17 
 069C 0A93              st -y,R16 
 069E 0E940000          xcall add32fs 
 06A2 5A92              st -y,R5 
 06A4 4A92              st -y,R4 
 06A6 3A92              st -y,R3 
 06A8 2A92              st -y,R2 
 06AA 0E940000          xcall empy32fs 
 06AE 0E940000          xcall add32fs 
 06B2 20904800          lds R2,_b 
 06B6 30904900          lds R3,_b+1 
 06BA 20914A00          lds R18,_k 
 06BE 30914B00          lds R19,_k+1 
 06C2 220D              add R18,R2 
 06C4 331D              adc R19,R3 
 06C6 02E0              ldi R16,2 
 06C8 10E0              ldi R17,0 
 06CA 0E940000          xcall empy16s 
 06CE F801              movw R30,R16 
 06D0 80E0              ldi R24,<_dataI 
 06D2 90E0              ldi R25,>_dataI 
 06D4 E80F              add R30,R24 
 06D6 F91F              adc R31,R25 
 06D8 0081              ldd R16,z+0 
 06DA 1181              ldd R17,z+1 
 06DC 0E940000          xcall int2fp 
 06E0 3A93              st -y,R19 
 06E2 2A93              st -y,R18 
 06E4 1A93              st -y,R17 
 06E6 0A93              st -y,R16 
 06E8 9A92              st -y,R9 
 06EA 8A92              st -y,R8 
 06EC 7A92              st -y,R7 
 06EE 6A92              st -y,R6 
 06F0 0E940000          xcall empy32fs 
 06F4 0E940000          xcall sub32f 
 06F8 0E940000          xcall fp2int 
 06FC 1801              movw R2,R16 
 06FE 40904800          lds R4,_b 
 0702 50904900          lds R5,_b+1 
 0706 20914A00          lds R18,_k 
 070A 30914B00          lds R19,_k+1 
 070E 240D              add R18,R4 
 0710 351D              adc R19,R5 
 0712 02E0              ldi R16,2 
 0714 10E0              ldi R17,0 
 0716 0E940000          xcall empy16s 
 071A F801              movw R30,R16 
 071C 80E0              ldi R24,<_dataI 
 071E 90E0              ldi R25,>_dataI 
 0720 E80F              add R30,R24 
 0722 F91F              adc R31,R25 
 0724 3182              std z+1,R3 
 0726 2082              std z+0,R2 
 0728                   .dbline -2 
 0728           L2: 
 0728                   .dbline 0 ; func end 
 0728 0895              ret 
 072A                   .dbend 
 072A                   .dbfunc e FFT _FFT fV 
 072A           ;          dataI -> R20,R21 
 072A           ;          dataR -> R22,R23 
                        .even 
 072A           _FFT:: 
 072A 0E940000          xcall push_gset3 
 072E A901              movw R20,R18 
 0730 B801              movw R22,R16 
 0732                   .dbline -1 
 0732                   .dbline 46 
 0732           ;        
 0732           ;       /*dataR[k]=dataR[k]+dataR[k+b]*cos_tab[p]+dataI[k+b]*sin_tab[p]; 
 0732           ;     dataI[k]=dataI[k]-dataR[k+b]*sin_tab[p]+dataI[k+b]*cos_tab[p]; 
 0732           ;     dataR[k+b]=TR-dataR[k+b]*cos_tab[p]-dataI[k+b]*sin_tab[p]; 
 0732           ;     dataI[k+b]=TI+temp*sin_tab[p]-dataI[k+b]*cos_tab[p];*/ 
 0732           ;  
 0732           ;  } 
 0732           ; void FFT(int dataR[],int dataI[]) 
 0732           ; { 
 0732                   .dbline 48 
 0732           ; // 以下是数据掉头功能 
 0732           ;   for(i = 0 ; i < 16 ; i++) 
 0732 2224              clr R2 
 0734 3324              clr R3 
 0736 30924F00          sts _i+1,R3 
 073A 20924E00          sts _i,R2 
 073E           L7: 
 073E                   .dbline 49 
 073E                   .dbline 50 
 073E 60DC              xcall _CHANGE 
 0740                   .dbline 51 
 0740           L8: 
 0740                   .dbline 48 
 0740 80914E00          lds R24,_i 
 0744 90914F00          lds R25,_i+1 
 0748 0196              adiw R24,1 
 074A 90934F00          sts _i+1,R25 
 074E 80934E00          sts _i,R24 
 0752                   .dbline 48 
 0752 8031              cpi R24,16 
 0754 E0E0              ldi R30,0 
 0756 9E07              cpc R25,R30 
 0758 94F3              brlt L7 
 075A                   .dbline 52 
 075A           ;    {  
 075A           ;     CHANGE ( ) ; 
 075A           ;    } 
 075A           ;   for(i=0;i<16;i++) 
 075A 2224              clr R2 
 075C 3324              clr R3 
 075E 30924F00          sts _i+1,R3 
 0762 20924E00          sts _i,R2 
 0766           L11: 
 0766                   .dbline 53 
 0766                   .dbline 54 
 0766 20914E00          lds R18,_i 
 076A 30914F00          lds R19,_i+1 
 076E 02E0              ldi R16,2 
 0770 10E0              ldi R17,0 
 0772 0E940000          xcall empy16s 
 0776 F801              movw R30,R16 
 0778 E40F              add R30,R20 
 077A F51F              adc R31,R21 
 077C 2080              ldd R2,z+0 
 077E 3180              ldd R3,z+1 
 0780 F801              movw R30,R16 
 0782 E60F              add R30,R22 
 0784 F71F              adc R31,R23 
 0786 3182              std z+1,R3 
 0788 2082              std z+0,R2 
 078A                   .dbline 54 
 078A 20914E00          lds R18,_i 
 078E 30914F00          lds R19,_i+1 
 0792 02E0              ldi R16,2 
 0794 10E0              ldi R17,0 
 0796 0E940000          xcall empy16s 
 079A F801              movw R30,R16 
 079C E40F              add R30,R20 
 079E F51F              adc R31,R21 
 07A0 2224              clr R2 
 07A2 3324              clr R3 
 07A4 3182              std z+1,R3 
 07A6 2082              std z+0,R2 
 07A8                   .dbline 55 
 07A8           L12: 
 07A8                   .dbline 52 
 07A8 80914E00          lds R24,_i 
 07AC 90914F00          lds R25,_i+1 
 07B0 0196              adiw R24,1 
 07B2 90934F00          sts _i+1,R25 
 07B6 80934E00          sts _i,R24 
 07BA                   .dbline 52 
 07BA 8031              cpi R24,16 
 07BC E0E0              ldi R30,0 
 07BE 9E07              cpc R25,R30 
 07C0 94F2              brlt L11 
 07C2                   .dbline 57 
 07C2           ;    { 
 07C2           ;     dataR[i]=dataI[i]; dataI[i]=0;  
 07C2           ;    } 
 07C2           ; // FFT算法 
 07C2           ;   for(L=1;L<=4;L++)                                           // 第一层循环 
 07C2 81E0              ldi R24,1 
 07C4 90E0              ldi R25,0 
 07C6 90935100          sts _L+1,R25 
 07CA 80935000          sts _L,R24 
 07CE           L15: 
 07CE                   .dbline 58 
 07CE           ;   { 
 07CE                   .dbline 59 
 07CE           ;      b=1; i=L-1; 
 07CE 81E0              ldi R24,1 
 07D0 90E0              ldi R25,0 
 07D2 90934900          sts _b+1,R25 
 07D6 80934800          sts _b,R24 
 07DA                   .dbline 59 
 07DA 80915000          lds R24,_L 
 07DE 90915100          lds R25,_L+1 
 07E2 0197              sbiw R24,1 
 07E4 90934F00          sts _i+1,R25 
 07E8 80934E00          sts _i,R24 
 07EC 15C0              xjmp L20 
 07EE           L19: 
 07EE                   .dbline 61 
 07EE                   .dbline 62 
 07EE 20914800          lds R18,_b 
 07F2 30914900          lds R19,_b+1 
 07F6 02E0              ldi R16,2 
 07F8 10E0              ldi R17,0 
 07FA 0E940000          xcall empy16s 
 07FE 10934900          sts _b+1,R17 
 0802 00934800          sts _b,R16 
 0806                   .dbline 62 
 0806 80914E00          lds R24,_i 
 080A 90914F00          lds R25,_i+1 
 080E 0197              sbiw R24,1 
 0810 90934F00          sts _i+1,R25 
 0814 80934E00          sts _i,R24 
 0818                   .dbline 63 
 0818           L20: 
 0818                   .dbline 60 
 0818           ;      while(i>0)  
 0818 2224              clr R2 
 081A 3324              clr R3 
 081C 40904E00          lds R4,_i 
 0820 50904F00          lds R5,_i+1 
 0824 2414              cp R2,R4 
 0826 3504              cpc R3,R5 
 0828 14F3              brlt L19 
 082A                   .dbline 64 
 082A           ;     { 
 082A           ;       b=b*2; i--; 
 082A           ;     }  
 082A           ;        for(j=0;j<=b-1;j++)                                             // 第二层循环 
 082A 30924D00          sts _j+1,R3 
 082E 20924C00          sts _j,R2 
 0832 6BC0              xjmp L25 
 0834           L22: 
 0834                   .dbline 65 
 0834           ;          {  
 0834                   .dbline 66 
 0834           ;            p=1; i=4-L; 
 0834 81E0              ldi R24,1 
 0836 90E0              ldi R25,0 
 0838 90934700          sts _p+1,R25 
 083C 80934600          sts _p,R24 
 0840                   .dbline 66 
 0840 20905000          lds R2,_L 
 0844 30905100          lds R3,_L+1 
 0848 84E0              ldi R24,4 
 084A 8219              sub R24,R2 
 084C 9309              sbc R25,R3 
 084E 90934F00          sts _i+1,R25 
 0852 80934E00          sts _i,R24 
 0856 15C0              xjmp L27 
 0858           L26: 
 0858                   .dbline 68 
 0858                   .dbline 69 
 0858 20914600          lds R18,_p 
 085C 30914700          lds R19,_p+1 
 0860 02E0              ldi R16,2 
 0862 10E0              ldi R17,0 
 0864 0E940000          xcall empy16s 
 0868 10934700          sts _p+1,R17 
 086C 00934600          sts _p,R16 
 0870                   .dbline 69 
 0870 80914E00          lds R24,_i 
 0874 90914F00          lds R25,_i+1 
 0878 0197              sbiw R24,1 
 087A 90934F00          sts _i+1,R25 
 087E 80934E00          sts _i,R24 
 0882                   .dbline 70 
 0882           L27: 
 0882                   .dbline 67 
 0882           ;            while(i>0)                                  
 0882 2224              clr R2 
 0884 3324              clr R3 
 0886 40904E00          lds R4,_i 
 088A 50904F00          lds R5,_i+1 
 088E 2414              cp R2,R4 
 0890 3504              cpc R3,R5 
 0892 14F3              brlt L26 
 0894                   .dbline 71 
 0894           ;                { 
 0894           ;                          p=p*2; i--; 
 0894           ;                          } 
 0894           ;            p=p*j; 
 0894 20914C00          lds R18,_j 
 0898 30914D00          lds R19,_j+1 
 089C 00914600          lds R16,_p 
 08A0 10914700          lds R17,_p+1 
 08A4 0E940000          xcall empy16s 
 08A8 10934700          sts _p+1,R17 
 08AC 00934600          sts _p,R16 
 08B0                   .dbline 72 
 08B0           ;             for(k=j;k<16;k=k+2*b)                             // 第三层循环 
 08B0 20904C00          lds R2,_j 
 08B4 30904D00          lds R3,_j+1 
 08B8 30924B00          sts _k+1,R3 
 08BC 20924A00          sts _k,R2 
 08C0 13C0              xjmp L32 
 08C2           L29: 
 08C2                   .dbline 73 
 08C2                   .dbline 74 
 08C2 06DC              xcall _FFTT 
 08C4                   .dbline 75 
 08C4           L30: 
 08C4                   .dbline 72 
 08C4 20914800          lds R18,_b 
 08C8 30914900          lds R19,_b+1 
 08CC 02E0              ldi R16,2 
 08CE 10E0              ldi R17,0 
 08D0 0E940000          xcall empy16s 
 08D4 20904A00          lds R2,_k 
 08D8 30904B00          lds R3,_k+1 
 08DC 200E              add R2,R16 
 08DE 311E              adc R3,R17 
 08E0 30924B00          sts _k+1,R3 
 08E4 20924A00          sts _k,R2 
 08E8           L32: 
 08E8                   .dbline 72 
 08E8 80914A00          lds R24,_k 
 08EC 90914B00          lds R25,_k+1 
 08F0 8031              cpi R24,16 
 08F2 E0E0              ldi R30,0 
 08F4 9E07              cpc R25,R30 
 08F6 2CF3              brlt L29 
 08F8                   .dbline 76 
 08F8           L23: 
 08F8                   .dbline 64 
 08F8 80914C00          lds R24,_j 
 08FC 90914D00          lds R25,_j+1 
 0900 0196              adiw R24,1 
 0902 90934D00          sts _j+1,R25 
 0906 80934C00          sts _j,R24 
 090A           L25: 
 090A                   .dbline 64 
 090A 80914800          lds R24,_b 
 090E 90914900          lds R25,_b+1 
 0912 0197              sbiw R24,1 
 0914 20904C00          lds R2,_j 
 0918 30904D00          lds R3,_j+1 
 091C 8215              cp R24,R2 
 091E 9305              cpc R25,R3 
 0920 0CF0              brlt X0 
 0922 88CF              xjmp L22 
 0924           X0: 
 0924                   .dbline 77 
 0924           L16: 
 0924                   .dbline 57 
 0924 80915000          lds R24,_L 
 0928 90915100          lds R25,_L+1 
 092C 0196              adiw R24,1 
 092E 90935100          sts _L+1,R25 
 0932 80935000          sts _L,R24 
 0936                   .dbline 57 
 0936 84E0              ldi R24,4 
 0938 90E0              ldi R25,0 
 093A 20905000          lds R2,_L 
 093E 30905100          lds R3,_L+1 
 0942 8215              cp R24,R2 
 0944 9305              cpc R25,R3 
 0946 0CF0              brlt X1 
 0948 42CF              xjmp L15 
 094A           X1: 
 094A                   .dbline 78 
 094A           ;               {  
 094A           ;                 FFTT(); 
 094A           ;               } 
 094A           ;           } 
 094A           ;   }  
 094A           ;   for(i=0;i<32;i++)                                                   // 32次以下的谐波分析 
 094A 2224              clr R2 
 094C 3324              clr R3 
 094E 30924F00          sts _i+1,R3 
 0952 20924E00          sts _i,R2 
 0956           L33: 
 0956                   .dbline 79 
 0956           ;    { 
 0956                   .dbline 80 
 0956           ;     w[i]=sqrt(dataR[i]*dataR[i]+dataI[i]*dataI[i]); 
 0956 20914E00          lds R18,_i 
 095A 30914F00          lds R19,_i+1 
 095E 02E0              ldi R16,2 
 0960 10E0              ldi R17,0 
 0962 0E940000          xcall empy16s 
 0966 F801              movw R30,R16 
 0968 E60F              add R30,R22 
 096A F71F              adc R31,R23 
 096C 2080              ldd R2,z+0 
 096E 3180              ldd R3,z+1 
 0970 F801              movw R30,R16 
 0972 E40F              add R30,R20 
 0974 F51F              adc R31,R21 
 0976 4080              ldd R4,z+0 
 0978 5180              ldd R5,z+1 
 097A 9201              movw R18,R4 
 097C 8201              movw R16,R4 
 097E 0E940000          xcall empy16s 
 0982 2801              movw R4,R16 
 0984 9101              movw R18,R2 
 0986 8101              movw R16,R2 
 0988 0E940000          xcall empy16s 
 098C 040D              add R16,R4 
 098E 151D              adc R17,R5 
 0990 0E940000          xcall int2fp 
 0994 0E940000          xcall _sqrt 
 0998 1801              movw R2,R16 
 099A 2901              movw R4,R18 
 099C 3A93              st -y,R19 
 099E 2A93              st -y,R18 
 09A0 1A93              st -y,R17 
 09A2 0A93              st -y,R16 
 09A4 00E0              ldi R16,L39 
 09A8 0E940000          xcall lpm32 
 09AC 3A93              st -y,R19 
 09AE 2A93              st -y,R18 
 09B0 1A93              st -y,R17 
 09B2 0A93              st -y,R16 
 09B4 0E940000          xcall cmp32f 
 09B8 ACF0              brlt L37 
 09BA 5A92              st -y,R5 
 09BC 4A92              st -y,R4 
 09BE 3A92              st -y,R3 
 09C0 2A92              st -y,R2 
 09C2 00E0              ldi R16,L39 
 09C6 0E940000          xcall lpm32 
 09CA 3A93              st -y,R19 
 09CC 2A93              st -y,R18 
 09CE 1A93              st -y,R17 
 09D0 0A93              st -y,R16 
 09D2 0E940000          xcall sub32f 
 09D6 0E940000          xcall fp2int 
 09DA C801              movw R24,R16 
 09DC 8050              subi R24,0  ; offset = 32768 
 09DE 9048              sbci R25,128 
 09E0 5C01              movw R10,R24 
 09E2 05C0              xjmp L38 
 09E4           L37: 
 09E4 8101              movw R16,R2 
 09E6 9201              movw R18,R4 
 09E8 0E940000          xcall fp2int 
 09EC 5801              movw R10,R16 
 09EE           L38: 
 09EE 80E0              ldi R24,<_w 
 09F0 90E0              ldi R25,>_w 
 09F2 E0914E00          lds R30,_i 
 09F6 F0914F00          lds R31,_i+1 
 09FA E80F              add R30,R24 
 09FC F91F              adc R31,R25 
 09FE A082              std z+0,R10 
 0A00                   .dbline 81 
 0A00 60904E00          lds R6,_i 
 0A04 70904F00          lds R7,_i+1 
 0A08 680E              add R6,R24 
 0A0A 791E              adc R7,R25 
 0A0C 10E4              ldi R17,64 
 0A0E F301              movw R30,R6 
 0A10 0081              ldd R16,z+0 
 0A12 0E940000          xcall div8u 
 0A16 F301              movw R30,R6 
 0A18 0083              std z+0,R16 
 0A1A                   .dbline 82 
 0A1A           L34: 
 0A1A                   .dbline 78 
 0A1A 80914E00          lds R24,_i 
 0A1E 90914F00          lds R25,_i+1 
 0A22 0196              adiw R24,1 
 0A24 90934F00          sts _i+1,R25 
 0A28 80934E00          sts _i,R24 
 0A2C                   .dbline 78 
 0A2C 8032              cpi R24,32 
 0A2E E0E0              ldi R30,0 
 0A30 9E07              cpc R25,R30 
 0A32 0CF4              brge X2 
 0A34 90CF              xjmp L33 
 0A36           X2: 
 0A36                   .dbline 83 
 0A36           ;     w[i]=w[i]/64; 
 0A36           ;    } 
 0A36           ;   w[0]=w[0]/2; 
 0A36 60902600          lds R6,_w 
 0A3A 6694              lsr R6 
 0A3C 60922600          sts _w,R6 
 0A40                   .dbline -2 
 0A40           L6: 
 0A40 0E940000          xcall pop_gset3 
 0A44                   .dbline 0 ; func end 
 0A44 0895              ret 
 0A46                   .dbsym r dataI 20 pI 
 0A46                   .dbsym r dataR 22 pI 
 0A46                   .dbend 
 0A46                   .dbfunc e main _main fV 
                        .even 
 0A46           _main:: 
 0A46                   .dbline -1 
 0A46                   .dbline 87 
 0A46           ; }   
 0A46           ;  
 0A46           ; void main () 
 0A46           ;   { 
 0A46                   .dbline 88 
 0A46           ;     FFT(dataR,dataI); 
 0A46 20E0              ldi R18,<_dataI 
 0A48 30E0              ldi R19,>_dataI 
 0A4A 00E0              ldi R16,<_dataR 
 0A4C 10E0              ldi R17,>_dataR 
 0A4E 6DDE              xcall _FFT 
 0A50           L41: 
 0A50                   .dbline 89 
 0A50           L42: 
 0A50                   .dbline 89 
 0A50 FFCF              xjmp L41 
 0A52           X3: 
 0A52                   .dbline -2 
 0A52           L40: 
 0A52                   .dbline 0 ; func end 
 0A52 0895              ret 
 0A54                   .dbend 
                        .area bss(ram, con, rel) 
 0000                   .dbfile D:\HJN\Design\AVR\fft\fftbook.c 
 0000           _dataI:: 
 0000                   .blkb 32 
 0020                   .dbsym e dataI _dataI A[32:16]I 
 0020           _temp:: 
 0020                   .blkb 2 
 0022                   .dbsym e temp _temp i 
 0022           _TI:: 
 0022                   .blkb 2 
 0024                   .dbsym e TI _TI i 
 0024           _TR:: 
 0024                   .blkb 2 
 0026                   .dbsym e TR _TR i 
 0026           _w:: 
 0026                   .blkb 32 
 0046                   .dbsym e w _w A[32:32]c 
 0046           _p:: 
 0046                   .blkb 2 
 0048                   .dbsym e p _p I 
 0048           _b:: 
 0048                   .blkb 2 
 004A                   .dbsym e b _b I 
 004A           _k:: 
 004A                   .blkb 2 
 004C                   .dbsym e k _k I 
 004C           _j:: 
 004C                   .blkb 2 
 004E                   .dbsym e j _j I 
 004E           _i:: 
 004E                   .blkb 2 
 0050                   .dbsym e i _i I 
 0050           _L:: 
 0050                   .blkb 2 
 0052                   .dbsym e L _L I 
 0052           _x6:: 
 0052                   .blkb 2 
 0054                   .dbsym e x6 _x6 i 
 0054           _x5:: 
 0054                   .blkb 2 
 0056                   .dbsym e x5 _x5 i 
 0056           _x4:: 
 0056                   .blkb 2 
 0058                   .dbsym e x4 _x4 i 
 0058           _x3:: 
 0058                   .blkb 2 
 005A                   .dbsym e x3 _x3 i 
 005A           _x2:: 
 005A                   .blkb 2 
 005C                   .dbsym e x2 _x2 i 
 005C           _x1:: 
 005C                   .blkb 2 
 005E                   .dbsym e x1 _x1 i 
 005E           _x0:: 
 005E                   .blkb 2 
 0060                   .dbsym e x0 _x0 i 
                        .area lit(rom, con, rel) 
 0000           L39: 
 0000 00000047          .word 0x0,0x4700 
 0004           L5: 
 0004 00000040          .word 0x0,0x4000 
 0008           L4: 
 0008 00008041          .word 0x0,0x4180 
 000C           L3: 
 000C DA0FC940          .word 0xfda,0x40c9