📄 fft.lst
字号:
06F4 93BA ST R27,-Y
06F5 9508 RET
restore_floatregs:
06F6 91B9 LD R27,Y+
06F7 91A9 LD R26,Y+
06F8 9199 LD R25,Y+
06F9 9049 LD R4,Y+
06FA 9039 LD R3,Y+
06FB 9029 LD R2,Y+
06FC 9189 LD R24,Y+
06FD 90F9 LD R15,Y+
06FE 90E9 LD R14,Y+
06FF 90D9 LD R13,Y+
0700 9508 RET
stk2arg1:
0701 842A LDD R2,Y+10
0702 843B LDD R3,Y+11
0703 844C LDD R4,Y+12
0704 859D LDD R25,Y+13
0705 9508 RET
stk2arg0:
0706 850E LDD R16,Y+14
0707 851F LDD R17,Y+15
0708 8928 LDD R18,Y+16
0709 8939 LDD R19,Y+17
070A 9508 RET
float_epilog:
070B DFEA RCALL restore_floatregs
070C 920F PUSH R0
070D B60F IN R0,0x3F
070E 9628 ADIW R28,0x8
070F BE0F OUT 0x3F,R0
0710 900F POP R0
0711 9508 RET
float_prolog:
0712 DFD8 RCALL save_floatregs
0713 DFF2 RCALL stk2arg0
0714 CFEC RJMP stk2arg1
add32fs:
0715 D002 RCALL add32f
0716 940C059A JMP push_arg4
add32f:
0718 940E0712 CALL float_prolog
071A D012 RCALL FADD
071B 940C070B JMP float_epilog
sub32fs:
071D D002 RCALL sub32f
071E 940C059A JMP push_arg4
sub32f:
0720 940E0712 CALL float_prolog
0722 D009 RCALL FSUB
0723 940C070B JMP float_epilog
fret2:
0725 2F8A MOV R24,R26
0726 2F39 MOV R19,R25
0727 2D24 MOV R18,R4
0728 2D13 MOV R17,R3
0729 2D02 MOV R16,R2
072A 940C08E3 JMP repack
FSUB:
072C 5890 SUBI R25,0x80
FADD:
072D 940E08D1 CALL unpack
072F 3890 CPI R25,0x80
0730 F3C9 BEQ 0x072A
0731 3830 CPI R19,0x80
0732 F391 BEQ 0x0725
0733 2FB3 MOV R27,R19
0734 1BB9 SUB R27,R25
0735 F3A3 BVS 0x072A
0736 F02A BMI 0x073C
0737 F439 BNE 0x073F
0738 1502 CP R16,R2
0739 0513 CPC R17,R3
073A 0524 CPC R18,R4
073B F418 BCC 0x073F
073C 940E08C5 CALL swapacc
073E CFF4 RJMP 0x0733
073F 31B8 CPI R27,0x18
0740 F018 BCS 0x0744
0741 2422 CLR R2
0742 2433 CLR R3
0743 2444 CLR R4
0744 30B8 CPI R27,0x8
0745 F028 BCS 0x074B
0746 2C23 MOV R2,R3
0747 2C34 MOV R3,R4
0748 2444 CLR R4
0749 50B8 SUBI R27,0x8
074A CFF9 RJMP 0x0744
074B 23BB TST R27
074C F029 BEQ 0x0752
074D 9446 LSR R4
074E 9437 ROR R3
074F 9427 ROR R2
0750 95BA DEC R27
0751 F7D9 BNE 0x074D
0752 2FB8 MOV R27,R24
0753 27BA EOR R27,R26
0754 F04A BMI 0x075E
0755 D018 RCALL 0x076E
0756 F698 BCC 0x072A
0757 9527 ROR R18
0758 9517 ROR R17
0759 9507 ROR R16
075A 5F3F SUBI R19,0xFF
075B F673 BVC 0x072A
075C 940C08B2 JMP maxres
075E D013 RCALL usub24
075F F411 BNE 0x0762
0760 940C08B9 JMP minres
0762 F410 BCC 0x0765
0763 940E08AC CALL negmant
0765 2322 TST R18
0766 F21A BMI 0x072A
0767 0F00 LSL R16
0768 1F11 ROL R17
0769 1F22 ROL R18
076A 5031 SUBI R19,1
076B F7CB BVC 0x0765
076C 940C08B2 JMP maxres
076E 0D02 ADD R16,R2
076F 1D13 ADC R17,R3
0770 1D24 ADC R18,R4
0771 9508 RET
usub24:
0772 1902 SUB R16,R2
0773 0913 SBC R17,R3
0774 0924 SBC R18,R4
0775 9508 RET
div32fs:
0776 D002 RCALL div32f
0777 940C059A JMP push_arg4
div32f:
0779 940E0712 CALL float_prolog
077B D023 RCALL FDIV
077C 940C070B JMP float_epilog
077E 93BA ST R27,-Y
077F 24DD CLR R13
0780 24EE CLR R14
0781 24FF CLR R15
0782 E1B8 LDI R27,0x18
0783 1502 CP R16,R2
0784 0513 CPC R17,R3
0785 0524 CPC R18,R4
0786 F028 BCS 0x078C
0787 1902 SUB R16,R2
0788 0913 SBC R17,R3
0789 0924 SBC R18,R4
078A 9408 BSET 0
078B C001 RJMP 0x078D
078C 9488 BCLR 0
078D 1CDD ROL R13
078E 1CEE ROL R14
078F 1CFF ROL R15
0790 0F00 LSL R16
0791 1F11 ROL R17
0792 1F22 ROL R18
0793 95BA DEC R27
0794 F771 BNE 0x0783
0795 2D0D MOV R16,R13
0796 2D1E MOV R17,R14
0797 2D2F MOV R18,R15
0798 91B9 LD R27,Y+
0799 9508 RET
fdiv10:
079A 2422 CLR R2
079B 2433 CLR R3
079C E2B0 LDI R27,0x20
079D 2E4B MOV R4,R27
079E E491 LDI R25,0x41
FDIV:
079F 2399 TST R25
07A0 F129 BEQ 0x07C6
07A1 2333 TST R19
07A2 F151 BEQ 0x07CD
07A3 940E08D1 CALL unpack
07A5 F139 BEQ 0x07CD
07A6 278A EOR R24,R26
07A7 9408 BSET 0
07A8 0B39 SBC R19,R25
07A9 F0EB BVS 0x07C7
07AA 9446 LSR R4
07AB 9437 ROR R3
07AC 9427 ROR R2
07AD 9526 LSR R18
07AE 9517 ROR R17
07AF 9507 ROR R16
07B0 DFCD RCALL 0x077E
07B1 2322 TST R18
07B2 F02A BMI 0x07B8
07B3 0F00 LSL R16
07B4 1F11 ROL R17
07B5 1F22 ROL R18
07B6 5031 SUBI R19,1
07B7 F07B BVS 0x07C7
07B8 2FB0 MOV R27,R16
07B9 95B6 LSR R27
07BA F048 BCS 0x07C4
07BB 2300 TST R16
07BC F43A BPL 0x07C4
07BD 2311 TST R17
07BE F42A BPL 0x07C4
07BF E0B1 LDI R27,1
07C0 0F0B ADD R16,R27
07C1 27BB CLR R27
07C2 1F1B ADC R17,R27
07C3 1F2B ADC R18,R27
07C4 940C08E3 JMP repack
07C6 C006 RJMP 0x07CD
07C7 E7BF LDI R27,0x7F
07C8 2F3B MOV R19,R27
07C9 2B2B OR R18,R27
07CA EF0F LDI R16,0xFF
07CB EF1F LDI R17,0xFF
07CC 9508 RET
07CD 2700 CLR R16
07CE 2711 CLR R17
07CF 2722 CLR R18
07D0 2733 CLR R19
07D1 2788 CLR R24
07D2 9508 RET
cmp32f:
07D3 940E0712 CALL float_prolog
07D5 D002 RCALL FLTCP
07D6 940C070B JMP float_epilog
FLTCP:
07D8 D002 RCALL 0x07DB
07D9 23BB TST R27
07DA 9508 RET
07DB 2333 TST R19
07DC F082 BMI 0x07ED
07DD 2399 TST R25
07DE F042 BMI 0x07E7
07DF 1739 CP R19,R25
07E0 F040 BCS 0x07E9
07E1 F429 BNE 0x07E7
07E2 1502 CP R16,R2
07E3 0513 CPC R17,R3
07E4 0524 CPC R18,R4
07E5 F018 BCS 0x07E9
07E6 F021 BEQ 0x07EB
07E7 E0B1 LDI R27,1
07E8 9508 RET
07E9 EFBF LDI R27,0xFF
07EA 9508 RET
07EB 27BB CLR R27
07EC 9508 RET
07ED 2399 TST R25
07EE F7D2 BPL 0x07E9
07EF 1739 CP R19,R25
07F0 F3B0 BCS 0x07E7
07F1 F7B9 BNE 0x07E9
07F2 1502 CP R16,R2
07F3 0513 CPC R17,R3
07F4 0524 CPC R18,R4
07F5 F388 BCS 0x07E7
07F6 F3A1 BEQ 0x07EB
07F7 CFF1 RJMP 0x07E9
07F8 E7BF LDI R27,0x7F
07F9 2F3B MOV R19,R27
07FA 2B2B OR R18,R27
07FB EF0F LDI R16,0xFF
07FC EF1F LDI R17,0xFF
07FD 9508 RET
07FE 2700 CLR R16
07FF 2711 CLR R17
0800 2722 CLR R18
0801 2733 CLR R19
0802 2788 CLR R24
0803 9508 RET
mpy32fs:
0804 D002 RCALL mpy32f
0805 940C059A JMP push_arg4
mpy32f:
0807 940E0712 CALL float_prolog
0809 D002 RCALL FMUL
080A 940C070B JMP float_epilog
FMUL:
080C 940E08D1 CALL unpack
080E F379 BEQ 0x07FE
080F 3890 CPI R25,0x80
0810 F369 BEQ 0x07FE
0811 278A EOR R24,R26
0812 9408 BSET 0
0813 1F39 ADC R19,R25
0814 F31B BVS 0x07F8
0815 D00B RCALL umul24
0816 2322 TST R18
0817 F02A BMI 0x081D
0818 953A DEC R19
0819 0CFF LSL R15
081A 1F00 ROL R16
081B 1F11 ROL R17
081C 1F22 ROL R18
081D 5F3F SUBI R19,0xFF
081E F2CB BVS 0x07F8
081F 940C08E3 JMP repack
umul24:
0821 939A ST R25,-Y
0822 24DD CLR R13
0823 24EE CLR R14
0824 24FF CLR R15
0825 27BB CLR R27
0826 E198 LDI R25,0x18
0827 0CDD LSL R13
0828 1CEE ROL R14
0829 1CFF ROL R15
082A 1F00 ROL R16
082B 1F11 ROL R17
082C 1F22 ROL R18
082D F430 BCC 0x0834
082E 0CD2 ADD R13,R2
082F 1CE3 ADC R14,R3
0830 1CF4 ADC R15,R4
0831 1F0B ADC R16,R27
0832 1F1B ADC R17,R27
0833 1F2B ADC R18,R27
0834 959A DEC R25
0835 F789 BNE 0x0827
0836 9199 LD R25,Y+
0837 9508 RET
0838 E7BF LDI R27,0x7F
0839 2F3B MOV R19,R27
083A 2B2B OR R18,R27
083B EF0F LDI R16,0xFF
083C EF1F LDI R17,0xFF
083D 9508 RET
083E 2700 CLR R16
083F 2711 CLR R17
0840 2722 CLR R18
0841 2733 CLR R19
0842 2788 CLR R24
0843 9508 RET
empy32fs:
0844 D002 RCALL empy32f
0845 940C059A JMP push_arg4
empy32f:
0847 940E0712 CALL float_prolog
0849 920F PUSH R0
084A 92CF PUSH R12
084B D004 RCALL eFMUL
084C 90CF POP R12
084D 900F POP R0
084E 940C070B JMP float_epilog
eFMUL:
0850 940E08D1 CALL unpack
0852 F359 BEQ 0x083E
0853 3890 CPI R25,0x80
0854 F349 BEQ 0x083E
0855 278A EOR R24,R26
0856 9408 BSET 0
0857 1F39 ADC R19,R25
0858 F2FB BVS 0x0838
0859 D00E RCALL eumul24
085A 2D2F MOV R18,R15
085B 2D1E MOV R17,R14
085C 2D0D MOV R16,R13
085D 2322 TST R18
085E F02A BMI 0x0864
085F 953A DEC R19
0860 0CCC LSL R12
0861 1F00 ROL R16
0862 1F11 ROL R17
0863 1F22 ROL R18
0864 5F3F SUBI R19,0xFF
0865 F293 BVS 0x0838
0866 940C08E3 JMP repack
eumul24:
0868 9D22 MUL R18,R2
0869 2CC0 MOV R12,R0
086A 2CD1 MOV R13,R1
086B 9D24 MUL R18,R4
086C 2CE0 MOV R14,R0
086D 2CF1 MOV R15,R1
086E 9D12 MUL R17,R2
086F 0CC1 ADD R12,R1
0870 1EDB ADC R13,R27
0871 1EEB ADC R14,R27
0872 1EFB ADC R15,R27
0873 9D03 MUL R16,R3
0874 0CC1 ADD R12,R1
0875 1EDB ADC R13,R27
0876 1EEB ADC R14,R27
0877 1EFB ADC R15,R27
0878 9D13 MUL R17,R3
0879 0CC0 ADD R12,R0
087A 1CD1 ADC R13,R1
087B 1EEB ADC R14,R27
087C 1EFB ADC R15,R27
087D 9D04 MUL R16,R4
087E 0CC0 ADD R12,R0
087F 1CD1 ADC R13,R1
0880 1EEB ADC R14,R27
0881 1EFB ADC R15,R27
0882 9D23 MUL R18,R3
0883 0CD0 ADD R13,R0
0884 1CE1 ADC R14,R1
0885 1EFB ADC R15,R27
0886 9D14 MUL R17,R4
0887 0CD0 ADD R13,R0
0888 1CE1 ADC R14,R1
0889 1EFB ADC R15,R27
088A 20CC TST R12
088B F422 BPL 0x0890
088C 9488 BCLR 0
088D 1EDB ADC R13,R27
088E 1EEB ADC R14,R27
088F 1EFB ADC R15,R27
0890 9508 RET
neg32fs:
0891 D002 RCALL neg32f
0892 940C059A JMP push_arg4
neg32f:
0894 93BF PUSH R27
0895 9109 LD R16,Y+
0896 9119 LD R17,Y+
0897 9129 LD R18,Y+
0898 9139 LD R19,Y+
0899 E8B0 LDI R27,0x80
089A 273B EOR R19,R27
089B 91BF POP R27
089C 9508 RET
savfacc1:
089D 938A ST R24,-Y
089E 93BA ST R27,-Y
089F 9508 RET
restorefacc1:
08A0 91B9 LD R27,Y+
08A1 9189 LD R24,Y+
08A2 9508 RET
unpackfacc1:
08A3 2F83 MOV R24,R19
08A4 7880
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -