📄 fft2.lis
字号:
0A40 3383 std z+3,R19
0A42 .dbline 76
0A42 L38:
0A42 .dbline 72
0A42 888D ldd R24,y+24
0A44 998D ldd R25,y+25
0A46 0196 adiw R24,1
0A48 998F std y+25,R25
0A4A 888F std y+24,R24
0A4C L40:
0A4C .dbline 72
0A4C 8CAD ldd R24,y+60
0A4E 9DAD ldd R25,y+61
0A50 0197 sbiw R24,1
0A52 288C ldd R2,y+24
0A54 398C ldd R3,y+25
0A56 8215 cp R24,R2
0A58 9305 cpc R25,R3
0A5A 0CF0 brlt X10
0A5C 96CF xjmp L37
0A5E X10:
0A5E L35:
0A5E .dbline 77
0A5E ; {
0A5E ; fr[i] = fr[i] / (1.0 * n);
0A5E ; fi[i] = fi[i] / (1.0 * n);
0A5E ; }
0A5E ; if(il != 0)
0A5E FE01 movw R30,R28
0A60 EA5B subi R30,186 ; addi 70
0A62 FF4F sbci R31,255
0A64 0080 ldd R0,z+0
0A66 1180 ldd R1,z+1
0A68 0020 tst R0
0A6A 19F4 brne X2
0A6C 1120 tst R1
0A6E 09F4 brne X11
0A70 47C1 xjmp L41
0A72 X11:
0A72 X2:
0A72 .dbline 78
0A72 ; for(i = 0;i <= n - 1;i ++)
0A72 2224 clr R2
0A74 3324 clr R3
0A76 398E std y+25,R3
0A78 288E std y+24,R2
0A7A 39C1 xjmp L46
0A7C L43:
0A7C .dbline 79
0A7C ; {
0A7C .dbline 80
0A7C ; pr[i] = sqrt(fr[i] * fr[i] + fi[i] * fi[i]);
0A7C 288D ldd R18,y+24
0A7E 398D ldd R19,y+25
0A80 04E0 ldi R16,4
0A82 10E0 ldi R17,0
0A84 0E940000 xcall empy16s
0A88 1801 movw R2,R16
0A8A F101 movw R30,R2
0A8C EE0D add R30,R14
0A8E FF1D adc R31,R15
0A90 4080 ldd R4,z+0
0A92 5180 ldd R5,z+1
0A94 6280 ldd R6,z+2
0A96 7380 ldd R7,z+3
0A98 FE01 movw R30,R28
0A9A 46A2 std z+38,R4
0A9C 57A2 std z+39,R5
0A9E 60A6 std z+40,R6
0AA0 71A6 std z+41,R7
0AA2 F101 movw R30,R2
0AA4 EC0D add R30,R12
0AA6 FD1D adc R31,R13
0AA8 4080 ldd R4,z+0
0AAA 5180 ldd R5,z+1
0AAC 6280 ldd R6,z+2
0AAE 7380 ldd R7,z+3
0AB0 FE01 movw R30,R28
0AB2 42A6 std z+42,R4
0AB4 53A6 std z+43,R5
0AB6 64A6 std z+44,R6
0AB8 75A6 std z+45,R7
0ABA FE01 movw R30,R28
0ABC 46A0 ldd R4,z+38
0ABE 57A0 ldd R5,z+39
0AC0 60A4 ldd R6,z+40
0AC2 71A4 ldd R7,z+41
0AC4 7A92 st -y,R7
0AC6 6A92 st -y,R6
0AC8 5A92 st -y,R5
0ACA 4A92 st -y,R4
0ACC FE01 movw R30,R28
0ACE ; stack offset 4
0ACE 42A4 ldd R4,z+42
0AD0 53A4 ldd R5,z+43
0AD2 64A4 ldd R6,z+44
0AD4 75A4 ldd R7,z+45
0AD6 7A92 st -y,R7
0AD8 6A92 st -y,R6
0ADA 5A92 st -y,R5
0ADC 4A92 st -y,R4
0ADE 0E940000 xcall empy32fs
0AE2 FE01 movw R30,R28
0AE4 ; stack offset 4
0AE4 46A4 ldd R4,z+46
0AE6 57A4 ldd R5,z+47
0AE8 60A8 ldd R6,z+48
0AEA 71A8 ldd R7,z+49
0AEC 7A92 st -y,R7
0AEE 6A92 st -y,R6
0AF0 5A92 st -y,R5
0AF2 4A92 st -y,R4
0AF4 FE01 movw R30,R28
0AF6 ; stack offset 8
0AF6 42A8 ldd R4,z+50
0AF8 53A8 ldd R5,z+51
0AFA 64A8 ldd R6,z+52
0AFC 75A8 ldd R7,z+53
0AFE 7A92 st -y,R7
0B00 6A92 st -y,R6
0B02 5A92 st -y,R5
0B04 4A92 st -y,R4
0B06 0E940000 xcall empy32fs
0B0A 0E940000 xcall add32f
0B0E 2F92 push R2
0B10 3F92 push R3
0B12 0E940000 xcall _sqrt
0B16 3F90 pop R3
0B18 2F90 pop R2
0B1A 2801 movw R4,R16
0B1C 3901 movw R6,R18
0B1E F101 movw R30,R2
0B20 08AC ldd R0,y+56
0B22 19AC ldd R1,y+57
0B24 E00D add R30,R0
0B26 F11D adc R31,R1
0B28 4082 std z+0,R4
0B2A 5182 std z+1,R5
0B2C 6282 std z+2,R6
0B2E 7382 std z+3,R7
0B30 .dbline 81
0B30 ; if(fabs(fr[i]) < 0.000001 * fabs(fi[i]))
0B30 288D ldd R18,y+24
0B32 398D ldd R19,y+25
0B34 04E0 ldi R16,4
0B36 10E0 ldi R17,0
0B38 0E940000 xcall empy16s
0B3C F801 movw R30,R16
0B3E EE0D add R30,R14
0B40 FF1D adc R31,R15
0B42 0081 ldd R16,z+0
0B44 1181 ldd R17,z+1
0B46 2281 ldd R18,z+2
0B48 3381 ldd R19,z+3
0B4A 0E940000 xcall _fabs
0B4E 1801 movw R2,R16
0B50 2901 movw R4,R18
0B52 288D ldd R18,y+24
0B54 398D ldd R19,y+25
0B56 04E0 ldi R16,4
0B58 10E0 ldi R17,0
0B5A 0E940000 xcall empy16s
0B5E F801 movw R30,R16
0B60 EC0D add R30,R12
0B62 FD1D adc R31,R13
0B64 0081 ldd R16,z+0
0B66 1181 ldd R17,z+1
0B68 2281 ldd R18,z+2
0B6A 3381 ldd R19,z+3
0B6C 2F92 push R2
0B6E 3F92 push R3
0B70 4F92 push R4
0B72 5F92 push R5
0B74 0E940000 xcall _fabs
0B78 5F90 pop R5
0B7A 4F90 pop R4
0B7C 3F90 pop R3
0B7E 2F90 pop R2
0B80 3801 movw R6,R16
0B82 4901 movw R8,R18
0B84 5A92 st -y,R5
0B86 4A92 st -y,R4
0B88 3A92 st -y,R3
0B8A 2A92 st -y,R2
0B8C 00E0 ldi R16,<L49
0B8E 10E0 ldi R17,>L49
0B90 0E940000 xcall lpm32
0B94 3A93 st -y,R19
0B96 2A93 st -y,R18
0B98 1A93 st -y,R17
0B9A 0A93 st -y,R16
0B9C 9A92 st -y,R9
0B9E 8A92 st -y,R8
0BA0 7A92 st -y,R7
0BA2 6A92 st -y,R6
0BA4 0E940000 xcall empy32fs
0BA8 0E940000 xcall cmp32f
0BAC 0CF0 brlt X12
0BAE 52C0 xjmp L47
0BB0 X12:
0BB0 .dbline 82
0BB0 ; {
0BB0 .dbline 83
0BB0 ; if((fi[i] * fr[i]) > 0)
0BB0 288D ldd R18,y+24
0BB2 398D ldd R19,y+25
0BB4 04E0 ldi R16,4
0BB6 10E0 ldi R17,0
0BB8 0E940000 xcall empy16s
0BBC 1801 movw R2,R16
0BBE 00E0 ldi R16,<L11
0BC0 10E0 ldi R17,>L11
0BC2 0E940000 xcall lpm32
0BC6 3A93 st -y,R19
0BC8 2A93 st -y,R18
0BCA 1A93 st -y,R17
0BCC 0A93 st -y,R16
0BCE F101 movw R30,R2
0BD0 EC0D add R30,R12
0BD2 FD1D adc R31,R13
0BD4 4080 ldd R4,z+0
0BD6 5180 ldd R5,z+1
0BD8 6280 ldd R6,z+2
0BDA 7380 ldd R7,z+3
0BDC 7A92 st -y,R7
0BDE 6A92 st -y,R6
0BE0 5A92 st -y,R5
0BE2 4A92 st -y,R4
0BE4 F101 movw R30,R2
0BE6 EE0D add R30,R14
0BE8 FF1D adc R31,R15
0BEA 2080 ldd R2,z+0
0BEC 3180 ldd R3,z+1
0BEE 4280 ldd R4,z+2
0BF0 5380 ldd R5,z+3
0BF2 5A92 st -y,R5
0BF4 4A92 st -y,R4
0BF6 3A92 st -y,R3
0BF8 2A92 st -y,R2
0BFA 0E940000 xcall empy32fs
0BFE 0E940000 xcall cmp32f
0C02 A4F4 brge L50
0C04 .dbline 84
0C04 ; pi[i] = 90.0;
0C04 288D ldd R18,y+24
0C06 398D ldd R19,y+25
0C08 04E0 ldi R16,4
0C0A 10E0 ldi R17,0
0C0C 0E940000 xcall empy16s
0C10 F801 movw R30,R16
0C12 0AAC ldd R0,y+58
0C14 1BAC ldd R1,y+59
0C16 E00D add R30,R0
0C18 F11D adc R31,R1
0C1A 00E0 ldi R16,<L52
0C1C 10E0 ldi R17,>L52
0C1E 0E940000 xcall lpm32
0C22 0083 std z+0,R16
0C24 1183 std z+1,R17
0C26 2283 std z+2,R18
0C28 3383 std z+3,R19
0C2A 5CC0 xjmp L48
0C2C L50:
0C2C .dbline 86
0C2C ; else
0C2C ; pi[i] = -90.0;
0C2C 288D ldd R18,y+24
0C2E 398D ldd R19,y+25
0C30 04E0 ldi R16,4
0C32 10E0 ldi R17,0
0C34 0E940000 xcall empy16s
0C38 F801 movw R30,R16
0C3A 0AAC ldd R0,y+58
0C3C 1BAC ldd R1,y+59
0C3E E00D add R30,R0
0C40 F11D adc R31,R1
0C42 00E0 ldi R16,<L53
0C44 10E0 ldi R17,>L53
0C46 0E940000 xcall lpm32
0C4A 0083 std z+0,R16
0C4C 1183 std z+1,R17
0C4E 2283 std z+2,R18
0C50 3383 std z+3,R19
0C52 .dbline 87
0C52 ; }
0C52 48C0 xjmp L48
0C54 L47:
0C54 .dbline 89
0C54 ; else
0C54 ; pi[i] = atan(fi[i] / fr[i]) * 360.0 / 6.283185306;
0C54 288D ldd R18,y+24
0C56 398D ldd R19,y+25
0C58 04E0 ldi R16,4
0C5A 10E0 ldi R17,0
0C5C 0E940000 xcall empy16s
0C60 1801 movw R2,R16
0C62 F101 movw R30,R2
0C64 EC0D add R30,R12
0C66 FD1D adc R31,R13
0C68 4080 ldd R4,z+0
0C6A 5180 ldd R5,z+1
0C6C 6280 ldd R6,z+2
0C6E 7380 ldd R7,z+3
0C70 7A92 st -y,R7
0C72 6A92 st -y,R6
0C74 5A92 st -y,R5
0C76 4A92 st -y,R4
0C78 F101 movw R30,R2
0C7A EE0D add R30,R14
0C7C FF1D adc R31,R15
0C7E 4080 ldd R4,z+0
0C80 5180 ldd R5,z+1
0C82 6280 ldd R6,z+2
0C84 7380 ldd R7,z+3
0C86 7A92 st -y,R7
0C88 6A92 st -y,R6
0C8A 5A92 st -y,R5
0C8C 4A92 st -y,R4
0C8E 0E940000 xcall div32f
0C92 2F92 push R2
0C94 3F92 push R3
0C96 0E940000 xcall _atan
0C9A 3F90 pop R3
0C9C 2F90 pop R2
0C9E 2801 movw R4,R16
0CA0 3901 movw R6,R18
0CA2 00E0 ldi R16,<L54
0CA4 10E0 ldi R17,>L54
0CA6 0E940000 xcall lpm32
0CAA 3A93 st -y,R19
0CAC 2A93 st -y,R18
0CAE 1A93 st -y,R17
0CB0 0A93 st -y,R16
0CB2 7A92 st -y,R7
0CB4 6A92 st -y,R6
0CB6 5A92 st -y,R5
0CB8 4A92 st -y,R4
0CBA 0E940000 xcall empy32fs
0CBE 00E0 ldi R16,<L12
0CC0 10E0 ldi R17,>L12
0CC2 0E940000 xcall lpm32
0CC6 3A93 st -y,R19
0CC8 2A93 st -y,R18
0CCA 1A93 st -y,R17
0CCC 0A93 st -y,R16
0CCE 0E940000 xcall div32f
0CD2 F101 movw R30,R2
0CD4 0AAC ldd R0,y+58
0CD6 1BAC ldd R1,y+59
0CD8 E00D add R30,R0
0CDA F11D adc R31,R1
0CDC 0083 std z+0,R16
0CDE 1183 std z+1,R17
0CE0 2283 std z+2,R18
0CE2 3383 std z+3,R19
0CE4 L48:
0CE4 .dbline 90
0CE4 L44:
0CE4 .dbline 78
0CE4 888D ldd R24,y+24
0CE6 998D ldd R25,y+25
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -