📄 fft1.lst
字号:
0734 9510 COM R17
0735 9500 COM R16
0736 5F0F SUBI R16,0xFF
0737 4F1F SBCI R17,0xFF
0738 FF37 SBRS R19,7
0739 C004 RJMP 0x073E
073A 9530 COM R19
073B 9520 COM R18
073C 5F2F SUBI R18,0xFF
073D 4F3F SBCI R19,0xFF
073E 940E074B CALL xdiv16u
0740 FED7 SBRS R13,7
0741 C004 RJMP 0x0746
0742 9510 COM R17
0743 9500 COM R16
0744 5F0F SUBI R16,0xFF
0745 4F1F SBCI R17,0xFF
0746 90D9 LD R13,Y+
0747 9508 RET
mod16u:
0748 9468 BSET 6
0749 C001 RJMP xdiv16u
div16u:
074A 94E8 BCLR 6
xdiv16u:
074B 92EA ST R14,-Y
074C 92FA ST R15,-Y
074D 938A ST R24,-Y
074E 24EE CLR R14
074F 24FF CLR R15
0750 E180 LDI R24,0x10
0751 0F00 LSL R16
0752 1F11 ROL R17
0753 1CEE ROL R14
0754 1CFF ROL R15
0755 16E2 CP R14,R18
0756 06F3 CPC R15,R19
0757 F018 BCS 0x075B
0758 1AE2 SUB R14,R18
0759 0AF3 SBC R15,R19
075A 9503 INC R16
075B 958A DEC R24
075C F7A1 BNE 0x0751
075D F416 BRTC 0x0760
075E 2D0E MOV R16,R14
075F 2D1F MOV R17,R15
0760 9189 LD R24,Y+
0761 90F9 LD R15,Y+
0762 90E9 LD R14,Y+
0763 9508 RET
empy16s:
0764 920A ST R0,-Y
0765 921A ST R1,-Y
0766 938A ST R24,-Y
0767 939A ST R25,-Y
0768 9F02 MUL R16,R18
0769 01C0 MOVW R24,R0
076A 9F12 MUL R17,R18
076B 0D90 ADD R25,R0
076C 9F03 MUL R16,R19
076D 0D90 ADD R25,R0
076E 018C MOVW R16,R24
076F 9199 LD R25,Y+
0770 9189 LD R24,Y+
0771 9019 LD R1,Y+
0772 9009 LD R0,Y+
0773 9508 RET
pop_gset2:
0774 E0E2 LDI R30,2
0775 940C0789 JMP pop
pop_gset3:
0777 E0E4 LDI R30,4
0778 940C0789 JMP pop
pop_gset5:
077A 27EE CLR R30
077B 940C0789 JMP pop
push_gset5:
077D 92FA ST R15,-Y
077E 92EA ST R14,-Y
push_gset4:
077F 92DA ST R13,-Y
0780 92CA ST R12,-Y
push_gset3:
0781 92BA ST R11,-Y
0782 92AA ST R10,-Y
push_gset2:
0783 937A ST R23,-Y
0784 936A ST R22,-Y
push_gset1:
0785 935A ST R21,-Y
0786 934A ST R20,-Y
0787 9508 RET
pop_gset1:
0788 E0E1 LDI R30,1
pop:
0789 9149 LD R20,Y+
078A 9159 LD R21,Y+
078B FDE0 SBRC R30,0
078C 9508 RET
078D 9169 LD R22,Y+
078E 9179 LD R23,Y+
078F FDE1 SBRC R30,1
0790 9508 RET
0791 90A9 LD R10,Y+
0792 90B9 LD R11,Y+
0793 FDE2 SBRC R30,2
0794 9508 RET
0795 90C9 LD R12,Y+
0796 90D9 LD R13,Y+
0797 FDE3 SBRC R30,3
0798 9508 RET
0799 90E9 LD R14,Y+
079A 90F9 LD R15,Y+
079B 9508 RET
neg32:
079C 9500 COM R16
079D 9510 COM R17
079E 9520 COM R18
079F 9530 COM R19
07A0 5F0F SUBI R16,0xFF
07A1 4F1F SBCI R17,0xFF
07A2 4F2F SBCI R18,0xFF
07A3 4F3F SBCI R19,0xFF
07A4 9508 RET
lpm32:
07A5 93EA ST R30,-Y
07A6 93FA ST R31,-Y
07A7 920A ST R0,-Y
07A8 2FE0 MOV R30,R16
07A9 2FF1 MOV R31,R17
07AA 95C8 LPM
07AB 2D00 MOV R16,R0
07AC 9631 ADIW R30,1
07AD 95C8 LPM
07AE 2D10 MOV R17,R0
07AF 9631 ADIW R30,1
07B0 95C8 LPM
07B1 2D20 MOV R18,R0
07B2 9631 ADIW R30,1
07B3 95C8 LPM
07B4 2D30 MOV R19,R0
07B5 9009 LD R0,Y+
07B6 91F9 LD R31,Y+
07B7 91E9 LD R30,Y+
07B8 9508 RET
lsl32:
07B9 920F PUSH R0
07BA 9009 LD R0,Y+
07BB 2000 TST R0
07BC F031 BEQ 0x07C3
07BD 0F00 LSL R16
07BE 1F11 ROL R17
07BF 1F22 ROL R18
07C0 1F33 ROL R19
07C1 940A DEC R0
07C2 CFF8 RJMP 0x07BB
07C3 900F POP R0
07C4 9508 RET
fp2int:
07C5 940E09F1 CALL savfacc1
07C7 D014 RCALL FTOI
07C8 2F02 MOV R16,R18
07C9 2F13 MOV R17,R19
07CA FD87 SBRC R24,7
07CB C002 RJMP nojump1
07CC 940C09F4 JMP restorefacc1
nojump1:
07CE 9510 COM R17
07CF 9501 NEG R16
07D0 4F1F SBCI R17,0xFF
07D1 940C09F4 JMP restorefacc1
fp2long:
07D3 940E09F1 CALL savfacc1
07D5 D008 RCALL FTOL
07D6 FF87 SBRS R24,7
07D7 C002 RJMP nojump2
07D8 940E079C CALL neg32
nojump2:
07DA 940C09F4 JMP restorefacc1
FTOI:
07DC E0BE LDI R27,0xE
07DD C001 RJMP 0x07DF
FTOL:
07DE E1BE LDI R27,0x1E
07DF 940E09F7 CALL unpackfacc1
07E1 F069 BEQ 0x07EF
07E2 1BB3 SUB R27,R19
07E3 F009 BEQ 0x07E5
07E4 F472 BPL 0x07F3
07E5 2388 TST R24
07E6 F022 BMI 0x07EB
07E7 E010 LDI R17,0
07E8 E700 LDI R16,0x70
07E9 940C07A5 JMP lpm32
07EB E010 LDI R17,0
07EC E706 LDI R16,0x76
07ED 940C07A5 JMP lpm32
07EF E010 LDI R17,0
07F0 E704 LDI R16,0x74
07F1 940C07A5 JMP lpm32
07F3 9533 INC R19
07F4 F3D2 BMI 0x07EF
07F5 E030 LDI R19,0
07F6 50B8 SUBI R27,0x8
07F7 F452 BPL 0x0802
07F8 5FB8 SUBI R27,0xF8
07F9 2F32 MOV R19,R18
07FA 2F21 MOV R18,R17
07FB 2F10 MOV R17,R16
07FC E800 LDI R16,0x80
07FD C006 RJMP 0x0804
07FE 2F01 MOV R16,R17
07FF 2F12 MOV R17,R18
0800 E020 LDI R18,0
0801 50B8 SUBI R27,0x8
0802 30B8 CPI R27,0x8
0803 F7D0 BCC 0x07FE
0804 23BB TST R27
0805 F031 BEQ 0x080C
0806 9536 LSR R19
0807 9527 ROR R18
0808 9517 ROR R17
0809 9507 ROR R16
080A 95BA DEC R27
080B F7D1 BNE 0x0806
080C 9508 RET
int2fp:
080D 2722 CLR R18
080E FD17 SBRC R17,7
080F 9520 COM R18
0810 2733 CLR R19
0811 FD27 SBRC R18,7
0812 9530 COM R19
long2fp:
0813 940E09F1 CALL savfacc1
0815 D002 RCALL ITOF
0816 940C09F4 JMP restorefacc1
ITOF:
0818 2788 CLR R24
0819 2333 TST R19
081A F41A BPL 0x081E
081B 940E079C CALL neg32
081D 9580 COM R24
081E 2FB0 MOV R27,R16
081F 2BB1 OR R27,R17
0820 2BB2 OR R27,R18
0821 2BB3 OR R27,R19
0822 F411 BNE 0x0825
0823 940C0A0D JMP minres
0825 E1B6 LDI R27,0x16
0826 C005 RJMP itof2
0827 95B3 INC R27
0828 9536 LSR R19
0829 9527 ROR R18
082A 9517 ROR R17
082B 9507 ROR R16
itof2:
082C 2333 TST R19
082D F7C9 BNE 0x0827
itof3:
082E 2322 TST R18
082F F449 BNE 0x0839
0830 50B8 SUBI R27,0x8
0831 2F21 MOV R18,R17
0832 2F10 MOV R17,R16
0833 E000 LDI R16,0
0834 CFF9 RJMP itof3
0835 95BA DEC R27
0836 0F00 LSL R16
0837 1F11 ROL R17
0838 1F22 ROL R18
0839 F7DA BPL 0x0835
083A 2F3B MOV R19,R27
083B 940C0A37 JMP repack
save_floatregs:
083D 92DA ST R13,-Y
083E 92EA ST R14,-Y
083F 92FA ST R15,-Y
0840 938A ST R24,-Y
0841 922A ST R2,-Y
0842 923A ST R3,-Y
0843 924A ST R4,-Y
0844 939A ST R25,-Y
0845 93AA ST R26,-Y
0846 93BA ST R27,-Y
0847 9508 RET
restore_floatregs:
0848 91B9 LD R27,Y+
0849 91A9 LD R26,Y+
084A 9199 LD R25,Y+
084B 9049 LD R4,Y+
084C 9039 LD R3,Y+
084D 9029 LD R2,Y+
084E 9189 LD R24,Y+
084F 90F9 LD R15,Y+
0850 90E9 LD R14,Y+
0851 90D9 LD R13,Y+
0852 9508 RET
stk2arg1:
0853 842A LDD R2,Y+10
0854 843B LDD R3,Y+11
0855 844C LDD R4,Y+12
0856 859D LDD R25,Y+13
0857 9508 RET
stk2arg0:
0858 850E LDD R16,Y+14
0859 851F LDD R17,Y+15
085A 8928 LDD R18,Y+16
085B 8939 LDD R19,Y+17
085C 9508 RET
float_epilog:
085D DFEA RCALL restore_floatregs
085E 920F PUSH R0
085F B60F IN R0,0x3F
0860 9628 ADIW R28,0x8
0861 BE0F OUT 0x3F,R0
0862 900F POP R0
0863 9508 RET
float_prolog:
0864 DFD8 RCALL save_floatregs
0865 DFF2 RCALL stk2arg0
0866 CFEC RJMP stk2arg1
_fabs:
0867 773F ANDI R19,0x7F
0868 9508 RET
add32fs:
0869 D002 RCALL add32f
086A 940C0725 JMP push_arg4
add32f:
086C 940E0864 CALL float_prolog
086E D012 RCALL FADD
086F 940C085D JMP float_epilog
sub32fs:
0871 D002 RCALL sub32f
0872 940C0725 JMP push_arg4
sub32f:
0874 940E0864 CALL float_prolog
0876 D009 RCALL FSUB
0877 940C085D JMP float_epilog
fret2:
0879 2F8A MOV R24,R26
087A 2F39 MOV R19,R25
087B 2D24 MOV R18,R4
087C 2D13 MOV R17,R3
087D 2D02 MOV R16,R2
087E 940C0A37 JMP repack
FSUB:
0880 5890 SUBI R25,0x80
FADD:
0881 940E0A25 CALL unpack
0883 3890 CPI R25,0x80
0884 F3C9 BEQ 0x087E
0885 3830 CPI R19,0x80
0886 F391 BEQ 0x0879
0887 2FB3 MOV R27,R19
0888 1BB9 SUB R27,R25
0889 F3A3 BVS 0x087E
088A F02A BMI 0x0890
088B F439 BNE 0x0893
088C 1502 CP R16,R2
088D 0513 CPC R17,R3
088E 0524 CPC R18,R4
088F F418 BCC 0x0893
0890 940E0A19 CALL swapacc
0892 CFF4 RJMP 0x0887
0893 31B8 CPI R27,0x18
0894 F018 BCS 0x0898
0895 2422 CLR R2
0896 2433 CLR R3
0897 2444 CLR R4
0898 30B8 CPI R27,0x8
0899 F028 BCS 0x089F
089A 2C23 MOV R2,R3
089B 2C34 MOV R3,R4
089C 2444 CLR R4
089D 50B8 SUBI R27,0x8
089E CFF9 RJMP 0x0898
089F 23BB TST R27
08A0 F029 BEQ 0x08A6
08A1 9446 LSR R4
08A2 9437 ROR R3
08A3 9427 ROR R2
08A4 95BA DEC R27
08A5 F7D9 BNE 0x08A1
08A6 2FB8 MOV R27,R24
08A7 27BA EOR R27,R26
08A8 F04A BMI 0x08B2
08A9 D018 RCALL 0x08C2
08AA F698 BCC 0x087E
08AB 9527 ROR R18
08AC 9517 ROR R17
08AD 9507 ROR R16
08AE 5F3F SUBI R19,0xFF
08AF F673 BVC 0x087E
08B0 940C0A06 JMP maxres
08B2 D013 RCALL usub24
08B3 F411 BNE 0x08B6
08B4 940C0A0D JMP minres
08B6 F410 BCC 0x08B9
08B7 940E0A00 CALL negmant
08B9 2322 TST R18
08BA F21A BMI 0x087E
08BB 0F00 LSL R16
08BC 1F11 ROL R17
08BD 1F22 ROL R18
08BE 5031 SUBI R19,1
08BF F7CB BVC 0x08B9
08C0 940C0A06 JMP maxres
08C2 0D02 ADD R16,R2
08C3 1D13 ADC R17,R3
08C4 1D24 ADC R18,R4
08C5 9508 RET
usub24:
08C6 1902 SUB R16,R2
08C7 0913 SBC R17,R3
08C8 0924 SBC R18,R4
08C9 9508 RET
div32fs:
08CA D002 RCALL div32f
08CB 940C0725 JMP push_arg4
div32f:
08CD 940E0864 CALL float_prolog
08CF D023 RCALL FDIV
08D0 940C085D JMP float_epilog
08D2 93BA ST R27,-Y
08D3 24DD CLR R13
08D4 24EE CLR R14
08D5 24FF CLR R15
08D6 E1B8 LDI R27,0x18
08D7 1502 CP R16,R2
08D8 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -