fft.lis
来自「在ICCAVR 环境实现的fft,」· LIS 代码 · 共 1,495 行 · 第 1/4 页
LIS
1,495 行
0814 0E940000 xcall add32f
0818 F101 movw R30,R2
081A 0083 std z+0,R16
081C 1183 std z+1,R17
081E 2283 std z+2,R18
0820 3383 std z+3,R19
0822 .dbline 46
0822 41E0 ldi R20,1
0824 50E0 ldi R21,0
0826 60E0 ldi R22,0
0828 70E0 ldi R23,0
082A FE01 movw R30,R28
082C 2480 ldd R2,z+4
082E 3580 ldd R3,z+5
0830 4680 ldd R4,z+6
0832 5780 ldd R5,z+7
0834 240E add R2,R20
0836 351E adc R3,R21
0838 461E adc R4,R22
083A 571E adc R5,R23
083C 44E0 ldi R20,4
083E 50E0 ldi R21,0
0840 60E0 ldi R22,0
0842 70E0 ldi R23,0
0844 5A92 st -y,R5
0846 4A92 st -y,R4
0848 3A92 st -y,R3
084A 2A92 st -y,R2
084C 8A01 movw R16,R20
084E 9B01 movw R18,R22
0850 0E940000 xcall empy32u
0854 1801 movw R2,R16
0856 2C0C add R2,R12
0858 3D1C adc R3,R13
085A F101 movw R30,R2
085C 4080 ldd R4,z+0
085E 5180 ldd R5,z+1
0860 6280 ldd R6,z+2
0862 7380 ldd R7,z+3
0864 7A92 st -y,R7
0866 6A92 st -y,R6
0868 5A92 st -y,R5
086A 4A92 st -y,R4
086C FE01 movw R30,R28
086E ; stack offset 4
086E 4088 ldd R4,z+16
0870 5188 ldd R5,z+17
0872 6288 ldd R6,z+18
0874 7388 ldd R7,z+19
0876 7A92 st -y,R7
0878 6A92 st -y,R6
087A 5A92 st -y,R5
087C 4A92 st -y,R4
087E 0E940000 xcall add32f
0882 F101 movw R30,R2
0884 0083 std z+0,R16
0886 1183 std z+1,R17
0888 2283 std z+2,R18
088A 3383 std z+3,R19
088C .dbline 47
088C L26:
088C .dbline 39
088C FE01 movw R30,R28
088E 20A0 ldd R2,z+32
0890 31A0 ldd R3,z+33
0892 42A0 ldd R4,z+34
0894 53A0 ldd R5,z+35
0896 FE01 movw R30,R28
0898 6480 ldd R6,z+4
089A 7580 ldd R7,z+5
089C 8680 ldd R8,z+6
089E 9780 ldd R9,z+7
08A0 620C add R6,R2
08A2 731C adc R7,R3
08A4 841C adc R8,R4
08A6 951C adc R9,R5
08A8 FE01 movw R30,R28
08AA 6482 std z+4,R6
08AC 7582 std z+5,R7
08AE 8682 std z+6,R8
08B0 9782 std z+7,R9
08B2 L28:
08B2 .dbline 39
08B2 FE01 movw R30,R28
08B4 248C ldd R2,z+28
08B6 358C ldd R3,z+29
08B8 468C ldd R4,z+30
08BA 578C ldd R5,z+31
08BC FE01 movw R30,R28
08BE 6480 ldd R6,z+4
08C0 7580 ldd R7,z+5
08C2 8680 ldd R8,z+6
08C4 9780 ldd R9,z+7
08C6 2614 cp R2,R6
08C8 3704 cpc R3,R7
08CA 4804 cpc R4,R8
08CC 5904 cpc R5,R9
08CE 08F0 brlo X3
08D0 20CE xjmp L25
08D2 X3:
08D2 .dbline 48
08D2 FE01 movw R30,R28
08D4 2488 ldd R2,z+20
08D6 3588 ldd R3,z+21
08D8 4688 ldd R4,z+22
08DA 5788 ldd R5,z+23
08DC FE01 movw R30,R28
08DE 20A6 std z+40,R2
08E0 31A6 std z+41,R3
08E2 42A6 std z+42,R4
08E4 53A6 std z+43,R5
08E6 FE01 movw R30,R28
08E8 2488 ldd R2,z+20
08EA 3588 ldd R3,z+21
08EC 4688 ldd R4,z+22
08EE 5788 ldd R5,z+23
08F0 5A92 st -y,R5
08F2 4A92 st -y,R4
08F4 3A92 st -y,R3
08F6 2A92 st -y,R2
08F8 FE01 movw R30,R28
08FA ; stack offset 4
08FA 20A8 ldd R2,z+48
08FC 31A8 ldd R3,z+49
08FE 42A8 ldd R4,z+50
0900 53A8 ldd R5,z+51
0902 5A92 st -y,R5
0904 4A92 st -y,R4
0906 3A92 st -y,R3
0908 2A92 st -y,R2
090A 0E940000 xcall empy32fs
090E FE01 movw R30,R28
0910 ; stack offset 4
0910 2488 ldd R2,z+20
0912 3588 ldd R3,z+21
0914 4688 ldd R4,z+22
0916 5788 ldd R5,z+23
0918 5A92 st -y,R5
091A 4A92 st -y,R4
091C 3A92 st -y,R3
091E 2A92 st -y,R2
0920 FE01 movw R30,R28
0922 ; stack offset 8
0922 20AC ldd R2,z+56
0924 31AC ldd R3,z+57
0926 42AC ldd R4,z+58
0928 53AC ldd R5,z+59
092A 5A92 st -y,R5
092C 4A92 st -y,R4
092E 3A92 st -y,R3
0930 2A92 st -y,R2
0932 0E940000 xcall empy32fs
0936 0E940000 xcall sub32fs
093A FE01 movw R30,R28
093C ; stack offset 4
093C 208C ldd R2,z+24
093E 318C ldd R3,z+25
0940 428C ldd R4,z+26
0942 538C ldd R5,z+27
0944 5A92 st -y,R5
0946 4A92 st -y,R4
0948 3A92 st -y,R3
094A 2A92 st -y,R2
094C 0E940000 xcall add32f
0950 FE01 movw R30,R28
0952 048B std z+20,R16
0954 158B std z+21,R17
0956 268B std z+22,R18
0958 378B std z+23,R19
095A .dbline 49
095A FE01 movw R30,R28
095C 2088 ldd R2,z+16
095E 3188 ldd R3,z+17
0960 4288 ldd R4,z+18
0962 5388 ldd R5,z+19
0964 5A92 st -y,R5
0966 4A92 st -y,R4
0968 3A92 st -y,R3
096A 2A92 st -y,R2
096C FE01 movw R30,R28
096E ; stack offset 4
096E 20A8 ldd R2,z+48
0970 31A8 ldd R3,z+49
0972 42A8 ldd R4,z+50
0974 53A8 ldd R5,z+51
0976 5A92 st -y,R5
0978 4A92 st -y,R4
097A 3A92 st -y,R3
097C 2A92 st -y,R2
097E 0E940000 xcall empy32fs
0982 FE01 movw R30,R28
0984 ; stack offset 4
0984 24A4 ldd R2,z+44
0986 35A4 ldd R3,z+45
0988 46A4 ldd R4,z+46
098A 57A4 ldd R5,z+47
098C 5A92 st -y,R5
098E 4A92 st -y,R4
0990 3A92 st -y,R3
0992 2A92 st -y,R2
0994 FE01 movw R30,R28
0996 ; stack offset 8
0996 20AC ldd R2,z+56
0998 31AC ldd R3,z+57
099A 42AC ldd R4,z+58
099C 53AC ldd R5,z+59
099E 5A92 st -y,R5
09A0 4A92 st -y,R4
09A2 3A92 st -y,R3
09A4 2A92 st -y,R2
09A6 0E940000 xcall empy32fs
09AA 0E940000 xcall add32fs
09AE FE01 movw R30,R28
09B0 ; stack offset 4
09B0 2488 ldd R2,z+20
09B2 3588 ldd R3,z+21
09B4 4688 ldd R4,z+22
09B6 5788 ldd R5,z+23
09B8 5A92 st -y,R5
09BA 4A92 st -y,R4
09BC 3A92 st -y,R3
09BE 2A92 st -y,R2
09C0 0E940000 xcall add32f
09C4 FE01 movw R30,R28
09C6 008B std z+16,R16
09C8 118B std z+17,R17
09CA 228B std z+18,R18
09CC 338B std z+19,R19
09CE .dbline 50
09CE L22:
09CE .dbline 38
09CE 42E0 ldi R20,2
09D0 50E0 ldi R21,0
09D2 60E0 ldi R22,0
09D4 70E0 ldi R23,0
09D6 FE01 movw R30,R28
09D8 24A0 ldd R2,z+36
09DA 35A0 ldd R3,z+37
09DC 46A0 ldd R4,z+38
09DE 57A0 ldd R5,z+39
09E0 240E add R2,R20
09E2 351E adc R3,R21
09E4 461E adc R4,R22
09E6 571E adc R5,R23
09E8 FE01 movw R30,R28
09EA 24A2 std z+36,R2
09EC 35A2 std z+37,R3
09EE 46A2 std z+38,R4
09F0 57A2 std z+39,R5
09F2 L24:
09F2 .dbline 38
09F2 FE01 movw R30,R28
09F4 208C ldd R2,z+24
09F6 318C ldd R3,z+25
09F8 428C ldd R4,z+26
09FA 538C ldd R5,z+27
09FC FE01 movw R30,R28
09FE 64A0 ldd R6,z+36
0A00 75A0 ldd R7,z+37
0A02 86A0 ldd R8,z+38
0A04 97A0 ldd R9,z+39
0A06 6214 cp R6,R2
0A08 7304 cpc R7,R3
0A0A 8404 cpc R8,R4
0A0C 9504 cpc R9,R5
0A0E 08F4 brsh X4
0A10 75CD xjmp L21
0A12 X4:
0A12 .dbline 51
0A12 FE01 movw R30,R28
0A14 20A0 ldd R2,z+32
0A16 31A0 ldd R3,z+33
0A18 42A0 ldd R4,z+34
0A1A 53A0 ldd R5,z+35
0A1C FE01 movw R30,R28
0A1E 208E std z+24,R2
0A20 318E std z+25,R3
0A22 428E std z+26,R4
0A24 538E std z+27,R5
0A26 .dbline 52
0A26 L13:
0A26 .dbline 30
0A26 FE01 movw R30,R28
0A28 208C ldd R2,z+24
0A2A 318C ldd R3,z+25
0A2C 428C ldd R4,z+26
0A2E 538C ldd R5,z+27
0A30 FE01 movw R30,R28
0A32 648C ldd R6,z+28
0A34 758C ldd R7,z+29
0A36 868C ldd R8,z+30
0A38 978C ldd R9,z+31
0A3A 2614 cp R2,R6
0A3C 3704 cpc R3,R7
0A3E 4804 cpc R4,R8
0A40 5904 cpc R5,R9
0A42 08F4 brsh X5
0A44 9ECC xjmp L12
0A46 X5:
0A46 .dbline -2
0A46 L1:
0A46 E896 adiw R28,56
0A48 0E940000 xcall pop_gset4
0A4C 2296 adiw R28,2
0A4E .dbline 0 ; func end
0A4E 0895 ret
0A50 .dbsym l theta 52 D
0A50 .dbsym l wpi 48 D
0A50 .dbsym l wpr 44 D
0A50 .dbsym l wtemp 40 D
0A50 .dbsym l m 36 l
0A50 .dbsym l istep 32 l
0A50 .dbsym l n 28 l
0A50 .dbsym l mmax 24 l
0A50 .dbsym l wr 20 D
0A50 .dbsym l wi 16 D
0A50 .dbsym l tempi 12 D
0A50 .dbsym l tempr 8 D
0A50 .dbsym l i 4 l
0A50 .dbsym l j 0 l
0A50 .dbsym r isign 10 I
0A50 .dbsym l nn 64 l
0A50 .dbsym r data 12 pD
0A50 .dbend
0A50 .dbfunc e main _main fV
.even
0A50 _main::
0A50 .dbline -1
0A50 .dbline 57
0A50 ; for (i=m;i<=n;i+=istep) {
0A50 ; j=i+mmax;
0A50 ; tempr=wr*data[j]-wi*data[j+1];
0A50 ; tempi=wr*data[j+1]+wi*data[j];
0A50 ; data[j]=data[i]-tempr;
0A50 ; data[j+1]=data[i+1]-tempi;
0A50 ; data[i] += tempr;
0A50 ; data[i+1] += tempi;
0A50 ; }
0A50 ; wr=(wtemp=wr)*wpr-wi*wpi+wr;
0A50 ; wi=wi*wpr+wtemp*wpi+wi;
0A50 ; }
0A50 ; mmax=istep;
0A50 ; }
0A50 ; }
0A50 ; #undef SWAP
0A50 ;
0A50 ; void main(void)
0A50 ; {
0A50 L30:
0A50 .dbline 58
0A50 L31:
0A50 .dbline 58
0A50 FFCF xjmp L30
0A52 X6:
0A52 .dbline -2
0A52 L29:
0A52 .dbline 0 ; func end
0A52 0895 ret
0A54 .dbend
.area lit(rom, con, rel)
0000 L20:
0000 00000000 .word 0x0,0x0
0004 L19:
0004 0000803F .word 0x0,0x3f80
0008 L18:
0008 000000C0 .word 0x0,0xc000
000C L17:
000C 0000003F .word 0x0,0x3f00
0010 L16:
0010 00000040 .word 0x0,0x4000
0014 L15:
0014 DB0FC940 .word 0xfdb,0x40c9
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?