📄 fftbook.lst
字号:
080B F369 BEQ 0x07F9
080C 278A EOR R24,R26
080D 9408 BSET 0
080E 1F39 ADC R19,R25
080F F31B BVS 0x07F3
0810 D00B RCALL umul24
0811 2322 TST R18
0812 F02A BMI 0x0818
0813 953A DEC R19
0814 0CFF LSL R15
0815 1F00 ROL R16
0816 1F11 ROL R17
0817 1F22 ROL R18
0818 5F3F SUBI R19,0xFF
0819 F2CB BVS 0x07F3
081A 940C08DE JMP repack
umul24:
081C 939A ST R25,-Y
081D 24DD CLR R13
081E 24EE CLR R14
081F 24FF CLR R15
0820 27BB CLR R27
0821 E198 LDI R25,0x18
0822 0CDD LSL R13
0823 1CEE ROL R14
0824 1CFF ROL R15
0825 1F00 ROL R16
0826 1F11 ROL R17
0827 1F22 ROL R18
0828 F430 BCC 0x082F
0829 0CD2 ADD R13,R2
082A 1CE3 ADC R14,R3
082B 1CF4 ADC R15,R4
082C 1F0B ADC R16,R27
082D 1F1B ADC R17,R27
082E 1F2B ADC R18,R27
082F 959A DEC R25
0830 F789 BNE 0x0822
0831 9199 LD R25,Y+
0832 9508 RET
0833 E7BF LDI R27,0x7F
0834 2F3B MOV R19,R27
0835 2B2B OR R18,R27
0836 EF0F LDI R16,0xFF
0837 EF1F LDI R17,0xFF
0838 9508 RET
0839 2700 CLR R16
083A 2711 CLR R17
083B 2722 CLR R18
083C 2733 CLR R19
083D 2788 CLR R24
083E 9508 RET
empy32fs:
083F D002 RCALL empy32f
0840 940C05B6 JMP push_arg4
empy32f:
0842 940E070D CALL float_prolog
0844 920F PUSH R0
0845 92CF PUSH R12
0846 D004 RCALL eFMUL
0847 90CF POP R12
0848 900F POP R0
0849 940C0706 JMP float_epilog
eFMUL:
084B 940E08CC CALL unpack
084D F359 BEQ 0x0839
084E 3890 CPI R25,0x80
084F F349 BEQ 0x0839
0850 278A EOR R24,R26
0851 9408 BSET 0
0852 1F39 ADC R19,R25
0853 F2FB BVS 0x0833
0854 D00E RCALL eumul24
0855 2D2F MOV R18,R15
0856 2D1E MOV R17,R14
0857 2D0D MOV R16,R13
0858 2322 TST R18
0859 F02A BMI 0x085F
085A 953A DEC R19
085B 0CCC LSL R12
085C 1F00 ROL R16
085D 1F11 ROL R17
085E 1F22 ROL R18
085F 5F3F SUBI R19,0xFF
0860 F293 BVS 0x0833
0861 940C08DE JMP repack
eumul24:
0863 9D22 MUL R18,R2
0864 2CC0 MOV R12,R0
0865 2CD1 MOV R13,R1
0866 9D24 MUL R18,R4
0867 2CE0 MOV R14,R0
0868 2CF1 MOV R15,R1
0869 9D12 MUL R17,R2
086A 0CC1 ADD R12,R1
086B 1EDB ADC R13,R27
086C 1EEB ADC R14,R27
086D 1EFB ADC R15,R27
086E 9D03 MUL R16,R3
086F 0CC1 ADD R12,R1
0870 1EDB ADC R13,R27
0871 1EEB ADC R14,R27
0872 1EFB ADC R15,R27
0873 9D13 MUL R17,R3
0874 0CC0 ADD R12,R0
0875 1CD1 ADC R13,R1
0876 1EEB ADC R14,R27
0877 1EFB ADC R15,R27
0878 9D04 MUL R16,R4
0879 0CC0 ADD R12,R0
087A 1CD1 ADC R13,R1
087B 1EEB ADC R14,R27
087C 1EFB ADC R15,R27
087D 9D23 MUL R18,R3
087E 0CD0 ADD R13,R0
087F 1CE1 ADC R14,R1
0880 1EFB ADC R15,R27
0881 9D14 MUL R17,R4
0882 0CD0 ADD R13,R0
0883 1CE1 ADC R14,R1
0884 1EFB ADC R15,R27
0885 20CC TST R12
0886 F422 BPL 0x088B
0887 9488 BCLR 0
0888 1EDB ADC R13,R27
0889 1EEB ADC R14,R27
088A 1EFB ADC R15,R27
088B 9508 RET
neg32fs:
088C D002 RCALL neg32f
088D 940C05B6 JMP push_arg4
neg32f:
088F 93BF PUSH R27
0890 9109 LD R16,Y+
0891 9119 LD R17,Y+
0892 9129 LD R18,Y+
0893 9139 LD R19,Y+
0894 E8B0 LDI R27,0x80
0895 273B EOR R19,R27
0896 91BF POP R27
0897 9508 RET
savfacc1:
0898 938A ST R24,-Y
0899 93BA ST R27,-Y
089A 9508 RET
restorefacc1:
089B 91B9 LD R27,Y+
089C 9189 LD R24,Y+
089D 9508 RET
unpackfacc1:
089E 2F83 MOV R24,R19
089F 7880 ANDI R24,0x80
08A0 0F22 LSL R18
08A1 1F33 ROL R19
08A2 5830 SUBI R19,0x80
08A3 9408 BSET 0
08A4 9527 ROR R18
08A5 3830 CPI R19,0x80
08A6 9508 RET
negmant:
08A7 9510 COM R17
08A8 9520 COM R18
08A9 9501 NEG R16
08AA 4F1F SBCI R17,0xFF
08AB 4F2F SBCI R18,0xFF
08AC 9508 RET
maxres:
08AD E7BF LDI R27,0x7F
08AE 2F3B MOV R19,R27
08AF 2B2B OR R18,R27
08B0 EFBF LDI R27,0xFF
08B1 2F0B MOV R16,R27
08B2 2F1B MOV R17,R27
08B3 9508 RET
minres:
08B4 2700 CLR R16
08B5 2711 CLR R17
08B6 2722 CLR R18
08B7 2733 CLR R19
08B8 2788 CLR R24
08B9 9508 RET
ac1toac2:
08BA 2F93 MOV R25,R19
08BB 2E20 MOV R2,R16
08BC 2E31 MOV R3,R17
08BD 2E42 MOV R4,R18
08BE 2FA8 MOV R26,R24
08BF 9508 RET
swapacc:
08C0 922A ST R2,-Y
08C1 923A ST R3,-Y
08C2 924A ST R4,-Y
08C3 939A ST R25,-Y
08C4 93AA ST R26,-Y
08C5 DFF4 RCALL ac1toac2
08C6 9189 LD R24,Y+
08C7 9139 LD R19,Y+
08C8 9129 LD R18,Y+
08C9 9119 LD R17,Y+
08CA 9109 LD R16,Y+
08CB 9508 RET
unpack:
08CC 2F83 MOV R24,R19
08CD E8B0 LDI R27,0x80
08CE 0F22 LSL R18
08CF 1F33 ROL R19
08D0 273B EOR R19,R27
08D1 0FBB LSL R27
08D2 9527 ROR R18
08D3 7880 ANDI R24,0x80
08D4 2FA9 MOV R26,R25
08D5 E8B0 LDI R27,0x80
08D6 0C44 LSL R4
08D7 1F99 ROL R25
08D8 279B EOR R25,R27
08D9 0FBB LSL R27
08DA 9447 ROR R4
08DB 78A0 ANDI R26,0x80
08DC 3830 CPI R19,0x80
08DD 9508 RET
repack:
08DE 0F22 LSL R18
08DF E8B0 LDI R27,0x80
08E0 27B3 EOR R27,R19
08E1 0F88 LSL R24
08E2 95B7 ROR R27
08E3 9527 ROR R18
08E4 2F3B MOV R19,R27
08E5 9508 RET
_cos:
08E6 940E05B6 CALL push_arg4
08E8 9721 SBIW R28,1
08E9 2FEC MOV R30,R28
08EA 2FFD MOV R31,R29
08EB 8021 LDD R2,Z+1
08EC 8032 LDD R3,Z+2
08ED 8043 LDD R4,Z+3
08EE 8054 LDD R5,Z+4
08EF 925A ST R5,-Y
08F0 924A ST R4,-Y
08F1 923A ST R3,-Y
08F2 922A ST R2,-Y
08F3 E60E LDI R16,0x6E
08F4 E010 LDI R17,0
08F5 940E064E CALL lpm32
08F7 933A ST R19,-Y
08F8 932A ST R18,-Y
08F9 931A ST R17,-Y
08FA 930A ST R16,-Y
08FB 940E07CE CALL cmp32f
08FD F05C BLT 0x0909
08FE E081 LDI R24,1
08FF 8388 STD Y+0,R24
0900 2FEC MOV R30,R28
0901 2FFD MOV R31,R29
0902 8101 LDD R16,Z+1
0903 8112 LDD R17,Z+2
0904 8123 LDD R18,Z+3
0905 8134 LDD R19,Z+4
0906 940E0A2E CALL _sinus
0908 C010 RJMP 0x0919
0909 E081 LDI R24,1
090A 8388 STD Y+0,R24
090B 2FEC MOV R30,R28
090C 2FFD MOV R31,R29
090D 8021 LDD R2,Z+1
090E 8032 LDD R3,Z+2
090F 8043 LDD R4,Z+3
0910 8054 LDD R5,Z+4
0911 925A ST R5,-Y
0912 924A ST R4,-Y
0913 923A ST R3,-Y
0914 922A ST R2,-Y
0915 940E088F CALL neg32f
0917 940E0A2E CALL _sinus
0919 9625 ADIW R28,5
091A 9508 RET
_floor:
091B 940E05B6 CALL push_arg4
091D 940E062C CALL push_gset2
091F 972C SBIW R28,0xC
0920 2FEC MOV R30,R28
0921 2FFD MOV R31,R29
0922 8820 LDD R2,Z+16
0923 8831 LDD R3,Z+17
0924 8842 LDD R4,Z+18
0925 8853 LDD R5,Z+19
0926 2FEC MOV R30,R28
0927 2FFD MOV R31,R29
0928 8224 STD Z+4,R2
0929 8235 STD Z+5,R3
092A 8246 STD Z+6,R4
092B 8257 STD Z+7,R5
092C 2FEC MOV R30,R28
092D 2FFD MOV R31,R29
092E 8900 LDD R16,Z+16
092F 8911 LDD R17,Z+17
0930 8922 LDD R18,Z+18
0931 8933 LDD R19,Z+19
0932 940E067C CALL fp2long
0934 2FEC MOV R30,R28
0935 2FFD MOV R31,R29
0936 8300 STD Z+0,R16
0937 8311 STD Z+1,R17
0938 8322 STD Z+2,R18
0939 8333 STD Z+3,R19
093A 2FEC MOV R30,R28
093B 2FFD MOV R31,R29
093C 8100 LDD R16,Z+0
093D 8111 LDD R17,Z+1
093E 8122 LDD R18,Z+2
093F 8133 LDD R19,Z+3
0940 940E06BC CALL long2fp
0942 933A ST R19,-Y
0943 932A ST R18,-Y
0944 931A ST R17,-Y
0945 930A ST R16,-Y
0946 2FEC MOV R30,R28
0947 2FFD MOV R31,R29
0948 8824 LDD R2,Z+20
0949 8835 LDD R3,Z+21
094A 8846 LDD R4,Z+22
094B 8857 LDD R5,Z+23
094C 925A ST R5,-Y
094D 924A ST R4,-Y
094E 923A ST R3,-Y
094F 922A ST R2,-Y
0950 940E07CE CALL cmp32f
0952 F041 BEQ 0x095B
0953 818E LDD R24,Y+6
0954 819F LDD R25,Y+7
0955 7880 ANDI R24,0x80
0956 779F ANDI R25,0x7F
0957 3880 CPI R24,0x80
0958 E4EB LDI R30,0x4B
0959 079E CPC R25,R30
095A F038 BCS 0x0962
095B 2FEC MOV R30,R28
095C 2FFD MOV R31,R29
095D 8900 LDD R16,Z+16
095E 8911 LDD R17,Z+17
095F 8922 LDD R18,Z+18
0960 8933 LDD R19,Z+19
0961 C046 RJMP 0x09A8
0962 E702 LDI R16,0x72
0963 E010 LDI R17,0
0964 940E064E CALL lpm32
0966 933A ST R19,-Y
0967 932A ST R18,-Y
0968 931A ST R17,-Y
0969 930A ST R16,-Y
096A 2FEC MOV R30,R28
096B 2FFD MOV R31,R29
096C 8824 LDD R2,Z+20
096D 8835 LDD R3,Z+21
096E 8846 LDD R4,Z+22
096F 8857 LDD R5,Z+23
0970 925A ST R5,-Y
0971 924A ST R4,-Y
0972 923A ST R3,-Y
0973 922A ST R2,-Y
0974 940E07CE CALL cmp32f
0976 F44C BGE 0x0980
0977 2FEC MOV R30,R28
0978 2FFD MOV R31,R29
0979 8100 LDD R16,Z+0
097A 8111 LDD R17,Z+1
097B 8122 LDD R18,Z+2
097C 8133 LDD R19,Z+3
097D 940E06BC CALL long2fp
097F C028 RJMP 0x09A8
0980 E041 LDI R20,1
0981 E050 LDI R21,0
0982 E060 LDI R22,0
0983 E070 LDI R23,0
0984 2FEC MOV R30,R28
0985 2FFD MOV R31,R29
0986 8020 LDD R2,Z+0
0987 8031 LDD R3,Z+1
0988 8042 LDD R4,Z+2
0989 8053 LDD R5,Z+3
098A 1A24 SUB R2,R20
098B 0A35 SBC R3,R21
098C 0A46 SBC R4,R22
098D 0A57 SBC R5,R23
098E 2FEC MOV R30,R28
098F 2FFD MOV R31,R29
0990 8620 STD Z+8,R2
0991 8631 STD Z+9,R3
0992 8642 STD Z+10,R4
0993 8653 STD Z+11,R5
0994 2FEC MOV R30,R28
0995 2FFD MOV R31,R29
0996 8420 LDD R2,Z+8
0997 8431 LDD R3,Z+9
0998 8442 LDD R4,Z+10
0999 8453 LDD R5,Z+11
099A 2FEC MOV R30,R28
099B 2FFD MOV R31,R29
099C 8220 STD Z+0,R2
099D 8231 STD Z+1,R3
099E 8242 STD Z+2,R4
099F 8253 STD Z+3,R5
09A0 2FEC MOV R30,R28
09A1 2FFD MOV R31,R29
09A2 8500 LDD R16,Z+8
09A3 8511 LDD R17,Z+9
09A4 8522 LDD R18,Z+10
09A5 8533 LDD R19,Z+11
09A6 940E06BC CALL long2fp
09A8 962C ADIW R28,0xC
09A9 940E061D CALL pop_gset2
09AB 9624 ADIW R28,4
09AC 9508 RET
_frexp:
09AD 940E05B6 CALL push_arg4
09AF 9728 SBIW R28,0x8
09B0 2FEC MOV R30,R28
09B1 2FFD MOV R31,R29
09B2 8420 LDD R2,Z+8
09B3 8431 LDD R3,Z+9
09B4 8442 LDD R4,Z+10
09B5 8453 LDD R5,Z+11
09B6 925A ST R5,-Y
09B7 924A ST R4,-Y
09B8 923A ST R3,-Y
09B9 922A ST R2,-Y
09BA E70A LDI R16,0x7A
09BB E010 LDI R17,0
09BC 940E064E CALL lpm32
09BE 933A ST R19,-Y
09BF 932A ST R18,-Y
09C0 931A ST R17,-Y
09C1 930A ST R16,-Y
09C2 940E07CE CALL cmp32f
09C4 F459 BNE 0x09D0
09C5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -