📄 fft.s
字号:
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 + -