📄 fft1.lst
字号:
057B 931A ST R17,-Y
057C 930A ST R16,-Y
057D 01FE MOVW R30,R28
057E 5BEC SUBI R30,0xBC
057F 4FFF SBCI R31,0xFF
0580 8100 LDD R16,Z+0
0581 8111 LDD R17,Z+1
0582 940E080D CALL int2fp
0584 933A ST R19,-Y
0585 932A ST R18,-Y
0586 931A ST R17,-Y
0587 930A ST R16,-Y
0588 940E0998 CALL empy32fs
058A 940E08CD CALL div32f
058C 01F1 MOVW R30,R2
058D 8300 STD Z+0,R16
058E 8311 STD Z+1,R17
058F 8322 STD Z+2,R18
0590 8333 STD Z+3,R19
(0075) fi[i] = fi[i] / (1.0 * n);
0591 8D28 LDD R18,Y+24
0592 8D39 LDD R19,Y+25
0593 E004 LDI R16,4
0594 E010 LDI R17,0
0595 940E0764 CALL empy16s
0597 0118 MOVW R2,R16
0598 0C2C ADD R2,R12
0599 1C3D ADC R3,R13
059A 01F1 MOVW R30,R2
059B 8040 LDD R4,Z+0
059C 8051 LDD R5,Z+1
059D 8062 LDD R6,Z+2
059E 8073 LDD R7,Z+3
059F 927A ST R7,-Y
05A0 926A ST R6,-Y
05A1 925A ST R5,-Y
05A2 924A ST R4,-Y
05A3 E60C LDI R16,0x6C
05A4 E010 LDI R17,0
05A5 940E07A5 CALL lpm32
05A7 933A ST R19,-Y
05A8 932A ST R18,-Y
05A9 931A ST R17,-Y
05AA 930A ST R16,-Y
05AB 01FE MOVW R30,R28
05AC 5BEC SUBI R30,0xBC
05AD 4FFF SBCI R31,0xFF
05AE 8100 LDD R16,Z+0
05AF 8111 LDD R17,Z+1
05B0 940E080D CALL int2fp
05B2 933A ST R19,-Y
05B3 932A ST R18,-Y
05B4 931A ST R17,-Y
05B5 930A ST R16,-Y
05B6 940E0998 CALL empy32fs
05B8 940E08CD CALL div32f
05BA 01F1 MOVW R30,R2
05BB 8300 STD Z+0,R16
05BC 8311 STD Z+1,R17
05BD 8322 STD Z+2,R18
05BE 8333 STD Z+3,R19
05BF 8D88 LDD R24,Y+24
05C0 8D99 LDD R25,Y+25
05C1 9601 ADIW R24,1
05C2 8F99 STD Y+25,R25
05C3 8F88 STD Y+24,R24
05C4 AD8C LDD R24,Y+60
05C5 AD9D LDD R25,Y+61
05C6 9701 SBIW R24,1
05C7 8C28 LDD R2,Y+24
05C8 8C39 LDD R3,Y+25
05C9 1582 CP R24,R2
05CA 0593 CPC R25,R3
05CB F00C BLT 0x05CD
05CC CF96 RJMP 0x0563
(0076) }
(0077) if(il != 0)
05CD 01FE MOVW R30,R28
05CE 5BEA SUBI R30,0xBA
05CF 4FFF SBCI R31,0xFF
05D0 8000 LDD R0,Z+0
05D1 8011 LDD R1,Z+1
05D2 2000 TST R0
05D3 F419 BNE 0x05D7
05D4 2011 TST R1
05D5 F409 BNE 0x05D7
05D6 C147 RJMP 0x071E
(0078) for(i = 0;i <= n - 1;i ++)
05D7 2422 CLR R2
05D8 2433 CLR R3
05D9 8E39 STD Y+25,R3
05DA 8E28 STD Y+24,R2
05DB C139 RJMP 0x0715
(0079) {
(0080) pr[i] = sqrt(fr[i] * fr[i] + fi[i] * fi[i]);
05DC 8D28 LDD R18,Y+24
05DD 8D39 LDD R19,Y+25
05DE E004 LDI R16,4
05DF E010 LDI R17,0
05E0 940E0764 CALL empy16s
05E2 0118 MOVW R2,R16
05E3 01F1 MOVW R30,R2
05E4 0DEE ADD R30,R14
05E5 1DFF ADC R31,R15
05E6 8040 LDD R4,Z+0
05E7 8051 LDD R5,Z+1
05E8 8062 LDD R6,Z+2
05E9 8073 LDD R7,Z+3
05EA 01FE MOVW R30,R28
05EB A246 STD Z+38,R4
05EC A257 STD Z+39,R5
05ED A660 STD Z+40,R6
05EE A671 STD Z+41,R7
05EF 01F1 MOVW R30,R2
05F0 0DEC ADD R30,R12
05F1 1DFD ADC R31,R13
05F2 8040 LDD R4,Z+0
05F3 8051 LDD R5,Z+1
05F4 8062 LDD R6,Z+2
05F5 8073 LDD R7,Z+3
05F6 01FE MOVW R30,R28
05F7 A642 STD Z+42,R4
05F8 A653 STD Z+43,R5
05F9 A664 STD Z+44,R6
05FA A675 STD Z+45,R7
05FB 01FE MOVW R30,R28
05FC A046 LDD R4,Z+38
05FD A057 LDD R5,Z+39
05FE A460 LDD R6,Z+40
05FF A471 LDD R7,Z+41
0600 927A ST R7,-Y
0601 926A ST R6,-Y
0602 925A ST R5,-Y
0603 924A ST R4,-Y
0604 01FE MOVW R30,R28
0605 A442 LDD R4,Z+42
0606 A453 LDD R5,Z+43
0607 A464 LDD R6,Z+44
0608 A475 LDD R7,Z+45
0609 927A ST R7,-Y
060A 926A ST R6,-Y
060B 925A ST R5,-Y
060C 924A ST R4,-Y
060D 940E0998 CALL empy32fs
060F 01FE MOVW R30,R28
0610 A446 LDD R4,Z+46
0611 A457 LDD R5,Z+47
0612 A860 LDD R6,Z+48
0613 A871 LDD R7,Z+49
0614 927A ST R7,-Y
0615 926A ST R6,-Y
0616 925A ST R5,-Y
0617 924A ST R4,-Y
0618 01FE MOVW R30,R28
0619 A842 LDD R4,Z+50
061A A853 LDD R5,Z+51
061B A864 LDD R6,Z+52
061C A875 LDD R7,Z+53
061D 927A ST R7,-Y
061E 926A ST R6,-Y
061F 925A ST R5,-Y
0620 924A ST R4,-Y
0621 940E0998 CALL empy32fs
0623 940E086C CALL add32f
0625 922F PUSH R2
0626 923F PUSH R3
0627 940E0F83 CALL _sqrt
0629 903F POP R3
062A 902F POP R2
062B 0128 MOVW R4,R16
062C 0139 MOVW R6,R18
062D 01F1 MOVW R30,R2
062E AC08 LDD R0,Y+56
062F AC19 LDD R1,Y+57
0630 0DE0 ADD R30,R0
0631 1DF1 ADC R31,R1
0632 8240 STD Z+0,R4
0633 8251 STD Z+1,R5
0634 8262 STD Z+2,R6
0635 8273 STD Z+3,R7
(0081) if(fabs(fr[i]) < 0.000001 * fabs(fi[i]))
0636 8D28 LDD R18,Y+24
0637 8D39 LDD R19,Y+25
0638 E004 LDI R16,4
0639 E010 LDI R17,0
063A 940E0764 CALL empy16s
063C 01F8 MOVW R30,R16
063D 0DEE ADD R30,R14
063E 1DFF ADC R31,R15
063F 8100 LDD R16,Z+0
0640 8111 LDD R17,Z+1
0641 8122 LDD R18,Z+2
0642 8133 LDD R19,Z+3
0643 940E0867 CALL _fabs
0645 0118 MOVW R2,R16
0646 0129 MOVW R4,R18
0647 8D28 LDD R18,Y+24
0648 8D39 LDD R19,Y+25
0649 E004 LDI R16,4
064A E010 LDI R17,0
064B 940E0764 CALL empy16s
064D 01F8 MOVW R30,R16
064E 0DEC ADD R30,R12
064F 1DFD ADC R31,R13
0650 8100 LDD R16,Z+0
0651 8111 LDD R17,Z+1
0652 8122 LDD R18,Z+2
0653 8133 LDD R19,Z+3
0654 922F PUSH R2
0655 923F PUSH R3
0656 924F PUSH R4
0657 925F PUSH R5
0658 940E0867 CALL _fabs
065A 905F POP R5
065B 904F POP R4
065C 903F POP R3
065D 902F POP R2
065E 0138 MOVW R6,R16
065F 0149 MOVW R8,R18
0660 925A ST R5,-Y
0661 924A ST R4,-Y
0662 923A ST R3,-Y
0663 922A ST R2,-Y
0664 E600 LDI R16,0x60
0665 E010 LDI R17,0
0666 940E07A5 CALL lpm32
0668 933A ST R19,-Y
0669 932A ST R18,-Y
066A 931A ST R17,-Y
066B 930A ST R16,-Y
066C 929A ST R9,-Y
066D 928A ST R8,-Y
066E 927A ST R7,-Y
066F 926A ST R6,-Y
0670 940E0998 CALL empy32fs
0672 940E0927 CALL cmp32f
0674 F00C BLT 0x0676
0675 C052 RJMP 0x06C8
(0082) {
(0083) if((fi[i] * fr[i]) > 0)
0676 8D28 LDD R18,Y+24
0677 8D39 LDD R19,Y+25
0678 E004 LDI R16,4
0679 E010 LDI R17,0
067A 940E0764 CALL empy16s
067C 0118 MOVW R2,R16
067D E608 LDI R16,0x68
067E E010 LDI R17,0
067F 940E07A5 CALL lpm32
0681 933A ST R19,-Y
0682 932A ST R18,-Y
0683 931A ST R17,-Y
0684 930A ST R16,-Y
0685 01F1 MOVW R30,R2
0686 0DEC ADD R30,R12
0687 1DFD ADC R31,R13
0688 8040 LDD R4,Z+0
0689 8051 LDD R5,Z+1
068A 8062 LDD R6,Z+2
068B 8073 LDD R7,Z+3
068C 927A ST R7,-Y
068D 926A ST R6,-Y
068E 925A ST R5,-Y
068F 924A ST R4,-Y
0690 01F1 MOVW R30,R2
0691 0DEE ADD R30,R14
0692 1DFF ADC R31,R15
0693 8020 LDD R2,Z+0
0694 8031 LDD R3,Z+1
0695 8042 LDD R4,Z+2
0696 8053 LDD R5,Z+3
0697 925A ST R5,-Y
0698 924A ST R4,-Y
0699 923A ST R3,-Y
069A 922A ST R2,-Y
069B 940E0998 CALL empy32fs
069D 940E0927 CALL cmp32f
069F F4A4 BGE 0x06B4
(0084) pi[i] = 90.0;
06A0 8D28 LDD R18,Y+24
06A1 8D39 LDD R19,Y+25
06A2 E004 LDI R16,4
06A3 E010 LDI R17,0
06A4 940E0764 CALL empy16s
06A6 01F8 MOVW R30,R16
06A7 AC0A LDD R0,Y+58
06A8 AC1B LDD R1,Y+59
06A9 0DE0 ADD R30,R0
06AA 1DF1 ADC R31,R1
06AB E50C LDI R16,0x5C
06AC E010 LDI R17,0
06AD 940E07A5 CALL lpm32
06AF 8300 STD Z+0,R16
06B0 8311 STD Z+1,R17
06B1 8322 STD Z+2,R18
06B2 8333 STD Z+3,R19
06B3 C05C RJMP 0x0710
(0085) else
(0086) pi[i] = -90.0;
06B4 8D28 LDD R18,Y+24
06B5 8D39 LDD R19,Y+25
06B6 E004 LDI R16,4
06B7 E010 LDI R17,0
06B8 940E0764 CALL empy16s
06BA 01F8 MOVW R30,R16
06BB AC0A LDD R0,Y+58
06BC AC1B LDD R1,Y+59
06BD 0DE0 ADD R30,R0
06BE 1DF1 ADC R31,R1
06BF E508 LDI R16,0x58
06C0 E010 LDI R17,0
06C1 940E07A5 CALL lpm32
06C3 8300 STD Z+0,R16
06C4 8311 STD Z+1,R17
06C5 8322 STD Z+2,R18
06C6 8333 STD Z+3,R19
(0087) }
06C7 C048 RJMP 0x0710
(0088) else
(0089) pi[i] = atan(fi[i] / fr[i]) * 360.0 / 6.283185306;
06C8 8D28 LDD R18,Y+24
06C9 8D39 LDD R19,Y+25
06CA E004 LDI R16,4
06CB E010 LDI R17,0
06CC 940E0764 CALL empy16s
06CE 0118 MOVW R2,R16
06CF 01F1 MOVW R30,R2
06D0 0DEC ADD R30,R12
06D1 1DFD ADC R31,R13
06D2 8040 LDD R4,Z+0
06D3 8051 LDD R5,Z+1
06D4 8062 LDD R6,Z+2
06D5 8073 LDD R7,Z+3
06D6 927A ST R7,-Y
06D7 926A ST R6,-Y
06D8 925A ST R5,-Y
06D9 924A ST R4,-Y
06DA 01F1 MOVW R30,R2
06DB 0DEE ADD R30,R14
06DC 1DFF ADC R31,R15
06DD 8040 LDD R4,Z+0
06DE 8051 LDD R5,Z+1
06DF 8062 LDD R6,Z+2
06E0 8073 LDD R7,Z+3
06E1 927A ST R7,-Y
06E2 926A ST R6,-Y
06E3 925A ST R5,-Y
06E4 924A ST R4,-Y
06E5 940E08CD CALL div32f
06E7 922F PUSH R2
06E8 923F PUSH R3
06E9 940E0C58 CALL _atan
06EB 903F POP R3
06EC 902F POP R2
06ED 0128 MOVW R4,R16
06EE 0139 MOVW R6,R18
06EF E504 LDI R16,0x54
06F0 E010 LDI R17,0
06F1 940E07A5 CALL lpm32
06F3 933A ST R19,-Y
06F4 932A ST R18,-Y
06F5 931A ST R17,-Y
06F6 930A ST R16,-Y
06F7 927A ST R7,-Y
06F8 926A ST R6,-Y
06F9 925A ST R5,-Y
06FA 924A ST R4,-Y
06FB 940E0998 CALL empy32fs
06FD E604 LDI R16,0x64
06FE E010 LDI R17,0
06FF 940E07A5 CALL lpm32
0701 933A ST R19,-Y
0702 932A ST R18,-Y
0703 931A ST R17,-Y
0704 930A ST R16,-Y
0705 940E08CD CALL div32f
0707 01F1 MOVW R30,R2
0708 AC0A LDD R0,Y+58
0709 AC1B LDD R1,Y+59
070A 0DE0 ADD R30,R0
070B 1DF1 ADC R31,R1
070C 8300 STD Z+0,R16
070D 8311 STD Z+1,R17
070E 8322 STD Z+2,R18
070F 8333 STD Z+3,R19
0710 8D88 LDD R24,Y+24
0711 8D99 LDD R25,Y+25
0712 9601 ADIW R24,1
0713 8F99 STD Y+25,R25
0714 8F88 STD Y+24,R24
0715 AD8C LDD R24,Y+60
0716 AD9D LDD R25,Y+61
0717 9701 SBIW R24,1
0718 8C28 LDD R2,Y+24
0719 8C39 LDD R3,Y+25
071A 1582 CP R24,R2
071B 0593 CPC R25,R3
071C F00C BLT 0x071E
071D CEBE RJMP 0x05DC
071E 96AE ADIW R28,0x2E
071F 940E077A CALL pop_gset5
0721 9624 ADIW R28,4
0722 9508 RET
(0090) }
(0091) }
(0092)
(0093) main()
(0094) {
(0095) while(1);
FILE: <library>
_main:
0723 CFFF RJMP _main
0724 9508 RET
push_arg4:
0725 933A ST R19,-Y
0726 932A ST R18,-Y
push_arg2:
0727 931A ST R17,-Y
0728 930A ST R16,-Y
0729 9508 RET
mod16s:
072A 9468 BSET 6
072B 92DA ST R13,-Y
072C 2ED1 MOV R13,R17
072D C004 RJMP 0x0732
div16s:
072E 94E8 BCLR 6
072F 92DA ST R13,-Y
0730 2ED1 MOV R13,R17
0731 26D3 EOR R13,R19
0732 FF17 SBRS R17,7
0733 C004 RJMP 0x0738
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -