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

📄 fft1.lst

📁 在ICCAVR 环境实现的fft,
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0207 8053      LDD	R5,Z+3
    0208 925A      ST	R5,-Y
    0209 924A      ST	R4,-Y
    020A 923A      ST	R3,-Y
    020B 922A      ST	R2,-Y
    020C 940E0869  CALL	add32fs
    020E ADEC      LDD	R30,Y+60
    020F ADFD      LDD	R31,Y+61
    0210 8024      LDD	R2,Z+4
    0211 8035      LDD	R3,Z+5
    0212 8046      LDD	R4,Z+6
    0213 8057      LDD	R5,Z+7
    0214 925A      ST	R5,-Y
    0215 924A      ST	R4,-Y
    0216 923A      ST	R3,-Y
    0217 922A      ST	R2,-Y
    0218 01DE      MOVW	R26,R28
    0219 5BAE      SUBI	R26,0xBE
    021A 4FBF      SBCI	R27,0xFF
    021B 91ED      LD	R30,X+
    021C 91FC      LD	R31,0(X)
    021D 8024      LDD	R2,Z+4
    021E 8035      LDD	R3,Z+5
    021F 8046      LDD	R4,Z+6
    0220 8057      LDD	R5,Z+7
    0221 925A      ST	R5,-Y
    0222 924A      ST	R4,-Y
    0223 923A      ST	R3,-Y
    0224 922A      ST	R2,-Y
    0225 940E0869  CALL	add32fs
    0227 940E099B  CALL	empy32f
    0229 01FE      MOVW	R30,R28
    022A 8304      STD	Z+4,R16
    022B 8315      STD	Z+5,R17
    022C 8326      STD	Z+6,R18
    022D 8337      STD	Z+7,R19
(0038) pr[i] = p - q;
    022E 8D28      LDD	R18,Y+24
    022F 8D39      LDD	R19,Y+25
    0230 E004      LDI	R16,4
    0231 E010      LDI	R17,0
    0232 940E0764  CALL	empy16s
    0234 01F8      MOVW	R30,R16
    0235 AC08      LDD	R0,Y+56
    0236 AC19      LDD	R1,Y+57
    0237 0DE0      ADD	R30,R0
    0238 1DF1      ADC	R31,R1
    0239 01DE      MOVW	R26,R28
    023A 9618      ADIW	R26,0x8
    023B 902D      LD	R2,X+
    023C 903D      LD	R3,X+
    023D 904D      LD	R4,X+
    023E 905C      LD	R5,0(X)
    023F 925A      ST	R5,-Y
    0240 924A      ST	R4,-Y
    0241 923A      ST	R3,-Y
    0242 922A      ST	R2,-Y
    0243 01DE      MOVW	R26,R28
    0244 9650      ADIW	R26,0x10
    0245 902D      LD	R2,X+
    0246 903D      LD	R3,X+
    0247 904D      LD	R4,X+
    0248 905C      LD	R5,0(X)
    0249 925A      ST	R5,-Y
    024A 924A      ST	R4,-Y
    024B 923A      ST	R3,-Y
    024C 922A      ST	R2,-Y
    024D 940E0874  CALL	sub32f
    024F 8300      STD	Z+0,R16
    0250 8311      STD	Z+1,R17
    0251 8322      STD	Z+2,R18
    0252 8333      STD	Z+3,R19
(0039) pi[i] = s - p - q;
    0253 01FE      MOVW	R30,R28
    0254 8024      LDD	R2,Z+4
    0255 8035      LDD	R3,Z+5
    0256 8046      LDD	R4,Z+6
    0257 8057      LDD	R5,Z+7
    0258 925A      ST	R5,-Y
    0259 924A      ST	R4,-Y
    025A 923A      ST	R3,-Y
    025B 922A      ST	R2,-Y
    025C 01FE      MOVW	R30,R28
    025D 8424      LDD	R2,Z+12
    025E 8435      LDD	R3,Z+13
    025F 8446      LDD	R4,Z+14
    0260 8457      LDD	R5,Z+15
    0261 925A      ST	R5,-Y
    0262 924A      ST	R4,-Y
    0263 923A      ST	R3,-Y
    0264 922A      ST	R2,-Y
    0265 940E0871  CALL	sub32fs
    0267 01FE      MOVW	R30,R28
    0268 8820      LDD	R2,Z+16
    0269 8831      LDD	R3,Z+17
    026A 8842      LDD	R4,Z+18
    026B 8853      LDD	R5,Z+19
    026C 925A      ST	R5,-Y
    026D 924A      ST	R4,-Y
    026E 923A      ST	R3,-Y
    026F 922A      ST	R2,-Y
    0270 940E0874  CALL	sub32f
    0272 8D28      LDD	R18,Y+24
    0273 8D39      LDD	R19,Y+25
    0274 E004      LDI	R16,4
    0275 E010      LDI	R17,0
    0276 940E0764  CALL	empy16s
    0278 01F8      MOVW	R30,R16
    0279 AC0A      LDD	R0,Y+58
    027A AC1B      LDD	R1,Y+59
    027B 0DE0      ADD	R30,R0
    027C 1DF1      ADC	R31,R1
    027D 8300      STD	Z+0,R16
    027E 8311      STD	Z+1,R17
    027F 8322      STD	Z+2,R18
    0280 8333      STD	Z+3,R19
    0281 8D88      LDD	R24,Y+24
    0282 8D99      LDD	R25,Y+25
    0283 9601      ADIW	R24,1
    0284 8F99      STD	Y+25,R25
    0285 8F88      STD	Y+24,R24
    0286 AD8C      LDD	R24,Y+60
    0287 AD9D      LDD	R25,Y+61
    0288 9701      SBIW	R24,1
    0289 8C28      LDD	R2,Y+24
    028A 8C39      LDD	R3,Y+25
    028B 1582      CP	R24,R2
    028C 0593      CPC	R25,R3
    028D F00C      BLT	0x028F
    028E CF13      RJMP	0x01A2
(0040) }
(0041) for(it = 0;it <= n - 2;it = it + 2)
    028F 2744      CLR	R20
    0290 2755      CLR	R21
    0291 C0AC      RJMP	0x033E
(0042) {
(0043) vr = fr[it];
    0292 E004      LDI	R16,4
    0293 E010      LDI	R17,0
    0294 019A      MOVW	R18,R20
    0295 940E0764  CALL	empy16s
    0297 01F8      MOVW	R30,R16
    0298 0DEE      ADD	R30,R14
    0299 1DFF      ADC	R31,R15
    029A 8020      LDD	R2,Z+0
    029B 8031      LDD	R3,Z+1
    029C 8042      LDD	R4,Z+2
    029D 8053      LDD	R5,Z+3
    029E 01FE      MOVW	R30,R28
    029F 8E24      STD	Z+28,R2
    02A0 8E35      STD	Z+29,R3
    02A1 8E46      STD	Z+30,R4
    02A2 8E57      STD	Z+31,R5
(0044) vi = fi[it];
    02A3 E004      LDI	R16,4
    02A4 E010      LDI	R17,0
    02A5 019A      MOVW	R18,R20
    02A6 940E0764  CALL	empy16s
    02A8 01F8      MOVW	R30,R16
    02A9 0DEC      ADD	R30,R12
    02AA 1DFD      ADC	R31,R13
    02AB 8020      LDD	R2,Z+0
    02AC 8031      LDD	R3,Z+1
    02AD 8042      LDD	R4,Z+2
    02AE 8053      LDD	R5,Z+3
    02AF 01FE      MOVW	R30,R28
    02B0 A220      STD	Z+32,R2
    02B1 A231      STD	Z+33,R3
    02B2 A242      STD	Z+34,R4
    02B3 A253      STD	Z+35,R5
(0045) fr[it] = vr + fr[it + 1];
    02B4 E004      LDI	R16,4
    02B5 E010      LDI	R17,0
    02B6 019A      MOVW	R18,R20
    02B7 940E0764  CALL	empy16s
    02B9 0118      MOVW	R2,R16
    02BA 0C2E      ADD	R2,R14
    02BB 1C3F      ADC	R3,R15
    02BC 01FE      MOVW	R30,R28
    02BD 8C44      LDD	R4,Z+28
    02BE 8C55      LDD	R5,Z+29
    02BF 8C66      LDD	R6,Z+30
    02C0 8C77      LDD	R7,Z+31
    02C1 927A      ST	R7,-Y
    02C2 926A      ST	R6,-Y
    02C3 925A      ST	R5,-Y
    02C4 924A      ST	R4,-Y
    02C5 01F1      MOVW	R30,R2
    02C6 8044      LDD	R4,Z+4
    02C7 8055      LDD	R5,Z+5
    02C8 8066      LDD	R6,Z+6
    02C9 8077      LDD	R7,Z+7
    02CA 927A      ST	R7,-Y
    02CB 926A      ST	R6,-Y
    02CC 925A      ST	R5,-Y
    02CD 924A      ST	R4,-Y
    02CE 940E086C  CALL	add32f
    02D0 01F1      MOVW	R30,R2
    02D1 8300      STD	Z+0,R16
    02D2 8311      STD	Z+1,R17
    02D3 8322      STD	Z+2,R18
    02D4 8333      STD	Z+3,R19
(0046) fi[it] = vi + fi[it + 1];
    02D5 E004      LDI	R16,4
    02D6 E010      LDI	R17,0
    02D7 019A      MOVW	R18,R20
    02D8 940E0764  CALL	empy16s
    02DA 0118      MOVW	R2,R16
    02DB 0C2C      ADD	R2,R12
    02DC 1C3D      ADC	R3,R13
    02DD 01FE      MOVW	R30,R28
    02DE A040      LDD	R4,Z+32
    02DF A051      LDD	R5,Z+33
    02E0 A062      LDD	R6,Z+34
    02E1 A073      LDD	R7,Z+35
    02E2 927A      ST	R7,-Y
    02E3 926A      ST	R6,-Y
    02E4 925A      ST	R5,-Y
    02E5 924A      ST	R4,-Y
    02E6 01F1      MOVW	R30,R2
    02E7 8044      LDD	R4,Z+4
    02E8 8055      LDD	R5,Z+5
    02E9 8066      LDD	R6,Z+6
    02EA 8077      LDD	R7,Z+7
    02EB 927A      ST	R7,-Y
    02EC 926A      ST	R6,-Y
    02ED 925A      ST	R5,-Y
    02EE 924A      ST	R4,-Y
    02EF 940E086C  CALL	add32f
    02F1 01F1      MOVW	R30,R2
    02F2 8300      STD	Z+0,R16
    02F3 8311      STD	Z+1,R17
    02F4 8322      STD	Z+2,R18
    02F5 8333      STD	Z+3,R19
(0047) fr[it + 1] = vr - fr[it + 1];
    02F6 E004      LDI	R16,4
    02F7 E010      LDI	R17,0
    02F8 019A      MOVW	R18,R20
    02F9 940E0764  CALL	empy16s
    02FB 01C8      MOVW	R24,R16
    02FC 0D8E      ADD	R24,R14
    02FD 1D9F      ADC	R25,R15
    02FE 9604      ADIW	R24,4
    02FF 011C      MOVW	R2,R24
    0300 01FE      MOVW	R30,R28
    0301 8C44      LDD	R4,Z+28
    0302 8C55      LDD	R5,Z+29
    0303 8C66      LDD	R6,Z+30
    0304 8C77      LDD	R7,Z+31
    0305 927A      ST	R7,-Y
    0306 926A      ST	R6,-Y
    0307 925A      ST	R5,-Y
    0308 924A      ST	R4,-Y
    0309 01FC      MOVW	R30,R24
    030A 8040      LDD	R4,Z+0
    030B 8051      LDD	R5,Z+1
    030C 8062      LDD	R6,Z+2
    030D 8073      LDD	R7,Z+3
    030E 927A      ST	R7,-Y
    030F 926A      ST	R6,-Y
    0310 925A      ST	R5,-Y
    0311 924A      ST	R4,-Y
    0312 940E0874  CALL	sub32f
    0314 01F1      MOVW	R30,R2
    0315 8300      STD	Z+0,R16
    0316 8311      STD	Z+1,R17
    0317 8322      STD	Z+2,R18
    0318 8333      STD	Z+3,R19
(0048) fi[it + 1] = vi - fi[it + 1];
    0319 E004      LDI	R16,4
    031A E010      LDI	R17,0
    031B 019A      MOVW	R18,R20
    031C 940E0764  CALL	empy16s
    031E 01C8      MOVW	R24,R16
    031F 0D8C      ADD	R24,R12
    0320 1D9D      ADC	R25,R13
    0321 9604      ADIW	R24,4
    0322 011C      MOVW	R2,R24
    0323 01FE      MOVW	R30,R28
    0324 A040      LDD	R4,Z+32
    0325 A051      LDD	R5,Z+33
    0326 A062      LDD	R6,Z+34
    0327 A073      LDD	R7,Z+35
    0328 927A      ST	R7,-Y
    0329 926A      ST	R6,-Y
    032A 925A      ST	R5,-Y
    032B 924A      ST	R4,-Y
    032C 01FC      MOVW	R30,R24
    032D 8040      LDD	R4,Z+0
    032E 8051      LDD	R5,Z+1
    032F 8062      LDD	R6,Z+2
    0330 8073      LDD	R7,Z+3
    0331 927A      ST	R7,-Y
    0332 926A      ST	R6,-Y
    0333 925A      ST	R5,-Y
    0334 924A      ST	R4,-Y
    0335 940E0874  CALL	sub32f
    0337 01F1      MOVW	R30,R2
    0338 8300      STD	Z+0,R16
    0339 8311      STD	Z+1,R17
    033A 8322      STD	Z+2,R18
    033B 8333      STD	Z+3,R19
    033C 5F4E      SUBI	R20,0xFE
    033D 4F5F      SBCI	R21,0xFF
    033E AD8C      LDD	R24,Y+60
    033F AD9D      LDD	R25,Y+61
    0340 9702      SBIW	R24,2
    0341 1784      CP	R24,R20
    0342 0795      CPC	R25,R21
    0343 F00C      BLT	0x0345
    0344 CF4D      RJMP	0x0292
(0049) }
(0050) m = n / 2;
    0345 E022      LDI	R18,2
    0346 E030      LDI	R19,0
    0347 AD0C      LDD	R16,Y+60
    0348 AD1D      LDD	R17,Y+61
    0349 940E072E  CALL	div16s
    034B 831B      STD	Y+3,R17
    034C 830A      STD	Y+2,R16
(0051) nv = 2;
    034D E082      LDI	R24,2
    034E E090      LDI	R25,0
    034F 8399      STD	Y+1,R25
    0350 8388      STD	Y+0,R24
(0052) for(l0 = k - 2;l0 >= 0;l0 --)
    0351 AD8E      LDD	R24,Y+62
    0352 AD9F      LDD	R25,Y+63
    0353 9702      SBIW	R24,2
    0354 A39D      STD	Y+37,R25
    0355 A38C      STD	Y+36,R24
    0356 C1F6      RJMP	0x054D
(0053) {
(0054) m = m / 2;
    0357 E022      LDI	R18,2
    0358 E030      LDI	R19,0
    0359 810A      LDD	R16,Y+2
    035A 811B      LDD	R17,Y+3
    035B 940E072E  CALL	div16s
    035D 831B      STD	Y+3,R17
    035E 830A      STD	Y+2,R16
(0055) nv = 2 * nv;
    035F 8128      LDD	R18,Y+0
    0360 8139      LDD	R19,Y+1
    0361 E002      LDI	R16,2
    0362 E010      LDI	R17,0
    0363 940E0764  CALL	empy16s
    0365 8319      STD	Y+1,R17
    0366 8308      STD	Y+0,R16
(0056) for(it = 0;it <= (m - 1) * nv;it = it + nv)
    0367 2744      CLR	R20
    0368 2755      CLR	R21
    0369 C1D2      RJMP	0x053C
(0057) for(j = 0;j <= (nv / 2) - 1;j ++)
    036A 24AA      CLR	R10
    036B 24BB      CLR	R11
    036C C1BF      RJMP	0x052C
(0058) {
(0059) p = pr[m * j] * fr[it + j + nv / 2];
    036D 810A      LDD	R16,Y+2
    036E 811B      LDD	R17,Y+3
    036F 0195      MOVW	R18,R10
    0370 940E0764  CALL	empy16s
    0372 0198      MOVW	R18,R16
    0373 E004      LDI	R16,4
    0374 E010      LDI	R17,0
    0375 940E0764  CALL	empy16s
    0377 01F8      MOVW	R30,R16
    0378 AC08      LDD	R0,Y+56
    0379 AC19      LDD	R1,Y+57
    037A 0DE0      ADD	R30,R0
    037B 1DF1      ADC	R31,R1
    037C 8020      LDD	R2,Z+0
    037D 8031      LDD	R3,Z+1
    037E 8042      LDD	R4,Z+2
    037F 8053      LDD	R5,Z+3
    0380 925A      ST	R5,-Y
    0381 924A      ST	R4,-Y
    0382 923A      ST	R3,-Y
    0383 922A      ST	R2,-Y
    0384 E022      LDI	R18,2
    0385 E030      LDI	R19,0
    0386 810C      LDD	R16,Y+4
    0387 811D      LDD	R17,Y+5
    0388 940E072E  CALL	div16s
    038A 019A      MOVW	R18,R20
    038B 0D2A      ADD	R18,R10
    038C 1D3B      ADC	R19,R11
    038D 0F20      ADD	R18,R16
    038E 1F31      ADC	R19,R17
    038F E004      LDI	R16,4
    0390 E010      LDI	R17,0
    0391 940E0764  CALL	empy16s
    0393 01F8      MOVW	R30,R16
    0394 0DEE      ADD	R30,R14
    0395 1DFF      ADC	R31,R15
    0396 8020      LDD	R2,Z+0
    0397 8031      LDD	R3,Z+1
    0398 8042      LDD	R4,Z+2
    0399 8053      LDD	R5,Z+3
    039A 925A      ST	R5,-Y
    039B 924A      ST	R4,-Y
    039C 923A      ST	R3,-Y
    039D 922A      ST	R2,-Y
    039E 940E099B  CALL	empy32f
    03A0 01FE      MOVW	R30,R28
    03A1 8700      STD	Z+8,R16
    03A2 8711      STD	Z+9,R17
    03A3 8722      STD	Z+10,R18
    03A4 8733      STD	Z+11,R19
(0060) q = pi[m * j] * fi[it + j + nv / 2];
    03A5 810A      LDD	R16,Y+2
    03A6 811B      LDD	R17,Y+3
    03A7 0195      MOVW	R18,R10
    03A8 940E0764  CALL	empy16s
    03AA 0198      MOVW	R18,R16
    03AB E004      LDI	R16,4
    03AC E010      LDI	R17,0
    03AD 940E0764  CALL	empy16s
    03AF 01F8      MOVW	R30,R16
    03B0 AC0A      LDD	R0,Y+58
    03B1 AC1B      LDD	R1,Y+59
    03B2 0DE0      ADD	R30,R0
    03B3 1DF1      ADC	R31,R1
    03B4 8020      LDD	R2,Z+0
    03B5 8031      LDD	R3,Z+1
    03B6 8042      LDD	R4,Z+2
    03B7 8053      LDD	R5,Z+3
    03B8 925A      ST	R5,-Y
    03B9 924A      ST	R4,-Y
    03BA 923A      ST	R3,-Y
    03BB 922A      ST	R2,-Y

⌨️ 快捷键说明

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