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

📄 fft1.lst

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