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

📄 fft1.lst

📁 在ICCAVR 环境实现的fft,
💻 LST
📖 第 1 页 / 共 5 页
字号:
    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 + -