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

📄 fft.s

📁 在ICCAVR 环境实现的fft,
💻 S
📖 第 1 页 / 共 2 页
字号:
	ldd R8,z+6
	ldd R9,z+7
	add R6,R2
	adc R7,R3
	adc R8,R4
	adc R9,R5
	movw R30,R28
	std z+0,R6
	std z+1,R7
	std z+2,R8
	std z+3,R9
	.dbline 41
	movw R30,R28
	ldd R2,z+20
	ldd R3,z+21
	ldd R4,z+22
	ldd R5,z+23
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R30,R28
 ; stack offset 4
	ldd R2,z+4
	ldd R3,z+5
	ldd R4,z+6
	ldd R5,z+7
	ldi R20,4
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R30,R16
	add R30,R12
	adc R31,R13
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	xcall empy32fs
	movw R30,R28
 ; stack offset 4
	ldd R2,z+20
	ldd R3,z+21
	ldd R4,z+22
	ldd R5,z+23
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	ldi R20,1
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
 ; stack offset 8
	ldd R2,z+8
	ldd R3,z+9
	ldd R4,z+10
	ldd R5,z+11
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	ldi R20,4
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R30,R16
	add R30,R12
	adc R31,R13
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	xcall empy32fs
	xcall sub32f
	movw R30,R28
	std z+8,R16
	std z+9,R17
	std z+10,R18
	std z+11,R19
	.dbline 42
	movw R30,R28
	ldd R2,z+20
	ldd R3,z+21
	ldd R4,z+22
	ldd R5,z+23
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	ldi R20,1
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
 ; stack offset 4
	ldd R2,z+4
	ldd R3,z+5
	ldd R4,z+6
	ldd R5,z+7
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	ldi R20,4
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R30,R16
	add R30,R12
	adc R31,R13
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	xcall empy32fs
	movw R30,R28
 ; stack offset 4
	ldd R2,z+20
	ldd R3,z+21
	ldd R4,z+22
	ldd R5,z+23
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R30,R28
 ; stack offset 8
	ldd R2,z+8
	ldd R3,z+9
	ldd R4,z+10
	ldd R5,z+11
	ldi R20,4
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R30,R16
	add R30,R12
	adc R31,R13
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	xcall empy32fs
	xcall add32f
	movw R30,R28
	std z+12,R16
	std z+13,R17
	std z+14,R18
	std z+15,R19
	.dbline 43
	movw R30,R28
	ldd R2,z+4
	ldd R3,z+5
	ldd R4,z+6
	ldd R5,z+7
	ldi R20,4
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R30,R16
	add R30,R12
	adc R31,R13
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R30,R28
 ; stack offset 4
	ldd R2,z+12
	ldd R3,z+13
	ldd R4,z+14
	ldd R5,z+15
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	xcall sub32f
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	ldi R20,4
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R30,R16
	add R30,R12
	adc R31,R13
	std z+0,R16
	std z+1,R17
	std z+2,R18
	std z+3,R19
	.dbline 44
	ldi R20,1
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+4
	ldd R3,z+5
	ldd R4,z+6
	ldd R5,z+7
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	ldi R20,4
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R30,R16
	add R30,R12
	adc R31,R13
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R30,R28
 ; stack offset 4
	ldd R2,z+16
	ldd R3,z+17
	ldd R4,z+18
	ldd R5,z+19
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	xcall sub32f
	ldi R20,1
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	ldi R20,4
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R30,R16
	add R30,R12
	adc R31,R13
	std z+0,R16
	std z+1,R17
	std z+2,R18
	std z+3,R19
	.dbline 45
	movw R30,R28
	ldd R2,z+4
	ldd R3,z+5
	ldd R4,z+6
	ldd R5,z+7
	ldi R20,4
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R2,R16
	add R2,R12
	adc R3,R13
	movw R30,R2
	ldd R4,z+0
	ldd R5,z+1
	ldd R6,z+2
	ldd R7,z+3
	st -y,R7
	st -y,R6
	st -y,R5
	st -y,R4
	movw R30,R28
 ; stack offset 4
	ldd R4,z+12
	ldd R5,z+13
	ldd R6,z+14
	ldd R7,z+15
	st -y,R7
	st -y,R6
	st -y,R5
	st -y,R4
	xcall add32f
	movw R30,R2
	std z+0,R16
	std z+1,R17
	std z+2,R18
	std z+3,R19
	.dbline 46
	ldi R20,1
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+4
	ldd R3,z+5
	ldd R4,z+6
	ldd R5,z+7
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	ldi R20,4
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R2,R16
	add R2,R12
	adc R3,R13
	movw R30,R2
	ldd R4,z+0
	ldd R5,z+1
	ldd R6,z+2
	ldd R7,z+3
	st -y,R7
	st -y,R6
	st -y,R5
	st -y,R4
	movw R30,R28
 ; stack offset 4
	ldd R4,z+16
	ldd R5,z+17
	ldd R6,z+18
	ldd R7,z+19
	st -y,R7
	st -y,R6
	st -y,R5
	st -y,R4
	xcall add32f
	movw R30,R2
	std z+0,R16
	std z+1,R17
	std z+2,R18
	std z+3,R19
	.dbline 47
L26:
	.dbline 39
	movw R30,R28
	ldd R2,z+32
	ldd R3,z+33
	ldd R4,z+34
	ldd R5,z+35
	movw R30,R28
	ldd R6,z+4
	ldd R7,z+5
	ldd R8,z+6
	ldd R9,z+7
	add R6,R2
	adc R7,R3
	adc R8,R4
	adc R9,R5
	movw R30,R28
	std z+4,R6
	std z+5,R7
	std z+6,R8
	std z+7,R9
L28:
	.dbline 39
	movw R30,R28
	ldd R2,z+28
	ldd R3,z+29
	ldd R4,z+30
	ldd R5,z+31
	movw R30,R28
	ldd R6,z+4
	ldd R7,z+5
	ldd R8,z+6
	ldd R9,z+7
	cp R2,R6
	cpc R3,R7
	cpc R4,R8
	cpc R5,R9
	brlo X3
	xjmp L25
X3:
	.dbline 48
	movw R30,R28
	ldd R2,z+20
	ldd R3,z+21
	ldd R4,z+22
	ldd R5,z+23
	movw R30,R28
	std z+40,R2
	std z+41,R3
	std z+42,R4
	std z+43,R5
	movw R30,R28
	ldd R2,z+20
	ldd R3,z+21
	ldd R4,z+22
	ldd R5,z+23
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R30,R28
 ; stack offset 4
	ldd R2,z+48
	ldd R3,z+49
	ldd R4,z+50
	ldd R5,z+51
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	xcall empy32fs
	movw R30,R28
 ; stack offset 4
	ldd R2,z+20
	ldd R3,z+21
	ldd R4,z+22
	ldd R5,z+23
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R30,R28
 ; stack offset 8
	ldd R2,z+56
	ldd R3,z+57
	ldd R4,z+58
	ldd R5,z+59
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	xcall empy32fs
	xcall sub32fs
	movw R30,R28
 ; stack offset 4
	ldd R2,z+24
	ldd R3,z+25
	ldd R4,z+26
	ldd R5,z+27
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	xcall add32f
	movw R30,R28
	std z+20,R16
	std z+21,R17
	std z+22,R18
	std z+23,R19
	.dbline 49
	movw R30,R28
	ldd R2,z+16
	ldd R3,z+17
	ldd R4,z+18
	ldd R5,z+19
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R30,R28
 ; stack offset 4
	ldd R2,z+48
	ldd R3,z+49
	ldd R4,z+50
	ldd R5,z+51
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	xcall empy32fs
	movw R30,R28
 ; stack offset 4
	ldd R2,z+44
	ldd R3,z+45
	ldd R4,z+46
	ldd R5,z+47
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R30,R28
 ; stack offset 8
	ldd R2,z+56
	ldd R3,z+57
	ldd R4,z+58
	ldd R5,z+59
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	xcall empy32fs
	xcall add32fs
	movw R30,R28
 ; stack offset 4
	ldd R2,z+20
	ldd R3,z+21
	ldd R4,z+22
	ldd R5,z+23
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	xcall add32f
	movw R30,R28
	std z+16,R16
	std z+17,R17
	std z+18,R18
	std z+19,R19
	.dbline 50
L22:
	.dbline 38
	ldi R20,2
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+36
	ldd R3,z+37
	ldd R4,z+38
	ldd R5,z+39
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	movw R30,R28
	std z+36,R2
	std z+37,R3
	std z+38,R4
	std z+39,R5
L24:
	.dbline 38
	movw R30,R28
	ldd R2,z+24
	ldd R3,z+25
	ldd R4,z+26
	ldd R5,z+27
	movw R30,R28
	ldd R6,z+36
	ldd R7,z+37
	ldd R8,z+38
	ldd R9,z+39
	cp R6,R2
	cpc R7,R3
	cpc R8,R4
	cpc R9,R5
	brsh X4
	xjmp L21
X4:
	.dbline 51
	movw R30,R28
	ldd R2,z+32
	ldd R3,z+33
	ldd R4,z+34
	ldd R5,z+35
	movw R30,R28
	std z+24,R2
	std z+25,R3
	std z+26,R4
	std z+27,R5
	.dbline 52
L13:
	.dbline 30
	movw R30,R28
	ldd R2,z+24
	ldd R3,z+25
	ldd R4,z+26
	ldd R5,z+27
	movw R30,R28
	ldd R6,z+28
	ldd R7,z+29
	ldd R8,z+30
	ldd R9,z+31
	cp R2,R6
	cpc R3,R7
	cpc R4,R8
	cpc R5,R9
	brsh X5
	xjmp L12
X5:
	.dbline -2
L1:
	adiw R28,56
	xcall pop_gset4
	adiw R28,2
	.dbline 0 ; func end
	ret
	.dbsym l theta 52 D
	.dbsym l wpi 48 D
	.dbsym l wpr 44 D
	.dbsym l wtemp 40 D
	.dbsym l m 36 l
	.dbsym l istep 32 l
	.dbsym l n 28 l
	.dbsym l mmax 24 l
	.dbsym l wr 20 D
	.dbsym l wi 16 D
	.dbsym l tempi 12 D
	.dbsym l tempr 8 D
	.dbsym l i 4 l
	.dbsym l j 0 l
	.dbsym r isign 10 I
	.dbsym l nn 64 l
	.dbsym r data 12 pD
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 57
;       for (i=m;i<=n;i+=istep) {
;         j=i+mmax;
;         tempr=wr*data[j]-wi*data[j+1];
;         tempi=wr*data[j+1]+wi*data[j];
;         data[j]=data[i]-tempr;
;         data[j+1]=data[i+1]-tempi;
;         data[i] += tempr;
;         data[i+1] += tempi;
;       }
;       wr=(wtemp=wr)*wpr-wi*wpi+wr;
;       wi=wi*wpr+wtemp*wpi+wi;
;     }
;     mmax=istep;
;   }
; }
; #undef SWAP 
; 
; void main(void)
; {
L30:
	.dbline 58
L31:
	.dbline 58
	xjmp L30
X6:
	.dbline -2
L29:
	.dbline 0 ; func end
	ret
	.dbend
	.area lit(rom, con, rel)
L20:
	.word 0x0,0x0
L19:
	.word 0x0,0x3f80
L18:
	.word 0x0,0xc000
L17:
	.word 0x0,0x3f00
L16:
	.word 0x0,0x4000
L15:
	.word 0xfdb,0x40c9

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -