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

📄 fat.lis

📁 采用Mega16+VS1011B+SD卡制作的Mp3
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0342 3A92              st -y,R3
 0344 2A92              st -y,R2
 0346 8A01              movw R16,R20
 0348 9B01              movw R18,R22
 034A 0E940000          xcall empy32u
 034E 3695              lsr R19
 0350 2795              ror R18
 0352 1795              ror R17
 0354 0795              ror R16
 0356 20901800          lds R2,_BlockSize
 035A 30901900          lds R3,_BlockSize+1
 035E 4424              clr R4
 0360 5524              clr R5
 0362 5A92              st -y,R5
 0364 4A92              st -y,R4
 0366 3A92              st -y,R3
 0368 2A92              st -y,R2
 036A 0E940000          xcall div32u
 036E 1801              movw R2,R16
 0370 2901              movw R4,R18
 0372 80901600          lds R8,_fat_offset+2
 0376 90901700          lds R9,_fat_offset+2+1
 037A 60901400          lds R6,_fat_offset
 037E 70901500          lds R7,_fat_offset+1
 0382 260C              add R2,R6
 0384 371C              adc R3,R7
 0386 481C              adc R4,R8
 0388 591C              adc R5,R9
 038A 2A82              std y+2,R2
 038C 3B82              std y+3,R3
 038E 4C82              std y+4,R4
 0390 5D82              std y+5,R5
 0392                   .dbline 101
 0392           ;               if(FAT_Byte_Addresse == 0x1FF)
 0392 C701              movw R24,R14
 0394 8F3F              cpi R24,255
 0396 A1E0              ldi R26,1
 0398 9A07              cpc R25,R26
 039A 09F0              breq X21
 039C 86C0              xjmp L20
 039E           X21:
 039E           X11:
 039E                   .dbline 102
 039E           ;               {
 039E                   .dbline 103
 039E           ;                       MMC_SD_ReadSingleBlock(FAT_Block_Addresse,TMP_Buffer);
 039E D982              std y+1,R13
 03A0 C882              std y+0,R12
 03A2 0A81              ldd R16,y+2
 03A4 1B81              ldd R17,y+3
 03A6 2C81              ldd R18,y+4
 03A8 3D81              ldd R19,y+5
 03AA 0E940000          xcall _MMC_SD_ReadSingleBlock
 03AE                   .dbline 104
 03AE           ;                       if((Cluster % 2) == 0)
 03AE 2C88              ldd R2,y+20
 03B0 3D88              ldd R3,y+21
 03B2 4E88              ldd R4,y+22
 03B4 5F88              ldd R5,y+23
 03B6 022D              mov R16,R2
 03B8 0170              andi R16,1
 03BA 69F4              brne L22
 03BC           X12:
 03BC                   .dbline 105
 03BC           ;                       {
 03BC                   .dbline 106
 03BC           ;                               *Block = TMP_Buffer[FAT_Byte_Addresse];
 03BC F701              movw R30,R14
 03BE EC0D              add R30,R12
 03C0 FD1D              adc R31,R13
 03C2 2080              ldd R2,z+0
 03C4 3324              clr R3
 03C6 4424              clr R4
 03C8 5524              clr R5
 03CA F501              movw R30,R10
 03CC 2082              std z+0,R2
 03CE 3182              std z+1,R3
 03D0 4282              std z+2,R4
 03D2 5382              std z+3,R5
 03D4                   .dbline 107
 03D4           ;                       }
 03D4 18C0              xjmp L23
 03D6           L22:
 03D6                   .dbline 109
 03D6           ;                       else
 03D6           ;                       {
 03D6                   .dbline 110
 03D6           ;                               *Block = (TMP_Buffer[FAT_Byte_Addresse] >> 4);
 03D6 F701              movw R30,R14
 03D8 EC0D              add R30,R12
 03DA FD1D              adc R31,R13
 03DC 2080              ldd R2,z+0
 03DE 3324              clr R3
 03E0 3594              asr R3
 03E2 2794              ror R2
 03E4 3594              asr R3
 03E6 2794              ror R2
 03E8 3594              asr R3
 03EA 2794              ror R2
 03EC 3594              asr R3
 03EE 2794              ror R2
 03F0 4424              clr R4
 03F2 37FC              sbrc R3,7
 03F4 4094              com R4
 03F6 5524              clr R5
 03F8 47FC              sbrc R4,7
 03FA 5094              com R5
 03FC F501              movw R30,R10
 03FE 2082              std z+0,R2
 0400 3182              std z+1,R3
 0402 4282              std z+2,R4
 0404 5382              std z+3,R5
 0406                   .dbline 111
 0406           ;                       }
 0406           L23:
 0406                   .dbline 112
 0406           ;                       MMC_SD_ReadSingleBlock(FAT_Block_Addresse+1,TMP_Buffer);
 0406 D982              std y+1,R13
 0408 C882              std y+0,R12
 040A 41E0              ldi R20,1
 040C 50E0              ldi R21,0
 040E 60E0              ldi R22,0
 0410 70E0              ldi R23,0
 0412 0A81              ldd R16,y+2
 0414 1B81              ldd R17,y+3
 0416 2C81              ldd R18,y+4
 0418 3D81              ldd R19,y+5
 041A 040F              add R16,R20
 041C 151F              adc R17,R21
 041E 261F              adc R18,R22
 0420 371F              adc R19,R23
 0422 0E940000          xcall _MMC_SD_ReadSingleBlock
 0426                   .dbline 113
 0426           ;                       if((Cluster % 2) == 0)
 0426 2C88              ldd R2,y+20
 0428 3D88              ldd R3,y+21
 042A 4E88              ldd R4,y+22
 042C 5F88              ldd R5,y+23
 042E 022D              mov R16,R2
 0430 0170              andi R16,1
 0432 E1F4              brne L24
 0434           X13:
 0434                   .dbline 114
 0434           ;                       {
 0434                   .dbline 115
 0434           ;                               *Block += ((TMP_Buffer[0] & 0x0F) << 8);
 0434 F601              movw R30,R12
 0436 8081              ldd R24,z+0
 0438 9927              clr R25
 043A 8F70              andi R24,15
 043C 9070              andi R25,0
 043E 982F              mov R25,R24
 0440 8827              clr R24
 0442 1C01              movw R2,R24
 0444 4424              clr R4
 0446 37FC              sbrc R3,7
 0448 4094              com R4
 044A 5524              clr R5
 044C 47FC              sbrc R4,7
 044E 5094              com R5
 0450 F501              movw R30,R10
 0452 6080              ldd R6,z+0
 0454 7180              ldd R7,z+1
 0456 8280              ldd R8,z+2
 0458 9380              ldd R9,z+3
 045A 620C              add R6,R2
 045C 731C              adc R7,R3
 045E 841C              adc R8,R4
 0460 951C              adc R9,R5
 0462 6082              std z+0,R6
 0464 7182              std z+1,R7
 0466 8282              std z+2,R8
 0468 9382              std z+3,R9
 046A                   .dbline 116
 046A           ;                       }
 046A 6EC0              xjmp L21
 046C           L24:
 046C                   .dbline 118
 046C           ;                       else
 046C           ;                       {
 046C                   .dbline 119
 046C           ;                               *Block += (TMP_Buffer[0] << 4);
 046C F601              movw R30,R12
 046E 2080              ldd R2,z+0
 0470 3324              clr R3
 0472 220C              lsl R2
 0474 331C              rol R3
 0476 220C              lsl R2
 0478 331C              rol R3
 047A 220C              lsl R2
 047C 331C              rol R3
 047E 220C              lsl R2
 0480 331C              rol R3
 0482 4424              clr R4
 0484 37FC              sbrc R3,7
 0486 4094              com R4
 0488 5524              clr R5
 048A 47FC              sbrc R4,7
 048C 5094              com R5
 048E F501              movw R30,R10
 0490 6080              ldd R6,z+0
 0492 7180              ldd R7,z+1
 0494 8280              ldd R8,z+2
 0496 9380              ldd R9,z+3
 0498 620C              add R6,R2
 049A 731C              adc R7,R3
 049C 841C              adc R8,R4
 049E 951C              adc R9,R5
 04A0 6082              std z+0,R6
 04A2 7182              std z+1,R7
 04A4 8282              std z+2,R8
 04A6 9382              std z+3,R9
 04A8                   .dbline 120
 04A8           ;                       }
 04A8                   .dbline 121
 04A8           ;               }
 04A8 4FC0              xjmp L21
 04AA           L20:
 04AA                   .dbline 123
 04AA           ;               else
 04AA           ;               {
 04AA                   .dbline 124
 04AA           ;                       MMC_SD_ReadSingleBlock(FAT_Block_Addresse,TMP_Buffer);
 04AA D982              std y+1,R13
 04AC C882              std y+0,R12
 04AE 0A81              ldd R16,y+2
 04B0 1B81              ldd R17,y+3
 04B2 2C81              ldd R18,y+4
 04B4 3D81              ldd R19,y+5
 04B6 0E940000          xcall _MMC_SD_ReadSingleBlock
 04BA                   .dbline 125
 04BA           ;                       if((Cluster % 2) == 0)
 04BA 2C88              ldd R2,y+20
 04BC 3D88              ldd R3,y+21
 04BE 4E88              ldd R4,y+22
 04C0 5F88              ldd R5,y+23
 04C2 022D              mov R16,R2
 04C4 0170              andi R16,1
 04C6 B9F4              brne L26
 04C8           X14:
 04C8                   .dbline 126
 04C8           ;                       {
 04C8                   .dbline 127
 04C8           ;                               *Block = ((TMP_Buffer[FAT_Byte_Addresse + 1] & 0x0F) << 8) + TMP_Buffer[FAT_Byte_Addresse];
 04C8 F701              movw R30,R14
 04CA EC0D              add R30,R12
 04CC FD1D              adc R31,R13
 04CE 2080              ldd R2,z+0
 04D0 F701              movw R30,R14
 04D2 3196              adiw R30,1
 04D4 EC0D              add R30,R12
 04D6 FD1D              adc R31,R13
 04D8 8081              ldd R24,z+0
 04DA 8F70              andi R24,15
 04DC 382E              mov R3,R24
 04DE 4424              clr R4
 04E0 37FC              sbrc R3,7
 04E2 4094              com R4
 04E4 5524              clr R5
 04E6 47FC              sbrc R4,7
 04E8 5094              com R5
 04EA F501              movw R30,R10
 04EC 2082              std z+0,R2
 04EE 3182              std z+1,R3
 04F0 4282              std z+2,R4
 04F2 5382              std z+3,R5
 04F4                   .dbline 128
 04F4           ;                       }
 04F4 29C0              xjmp L27
 04F6           L26:
 04F6                   .dbline 130
 04F6           ;                       else
 04F6           ;                       {
 04F6                   .dbline 131
 04F6           ;                               *Block = (TMP_Buffer[FAT_Byte_Addresse + 1] << 4) + (TMP_Buffer[FAT_Byte_Addresse] >> 4);
 04F6 F701              movw R30,R14
 04F8 EC0D              add R30,R12
 04FA FD1D              adc R31,R13
 04FC 2080              ldd R2,z+0
 04FE 3324              clr R3
 0500 3594              asr R3
 0502 2794              ror R2
 0504 3594              asr R3
 0506 2794              ror R2
 0508 3594              asr R3
 050A 2794              ror R2
 050C 3594              asr R3
 050E 2794              ror R2
 0510 F701              movw R30,R14
 0512 3196              adiw R30,1
 0514 EC0D              add R30,R12
 0516 FD1D              adc R31,R13
 0518 4080              ldd R4,z+0
 051A 5524              clr R5
 051C 440C              lsl R4
 051E 551C              rol R5
 0520 440C              lsl R4
 0522 551C              rol R5
 0524 440C              lsl R4
 0526 551C              rol R5
 0528 440C              lsl R4
 052A 551C              rol R5
 052C 420C              add R4,R2
 052E 531C              adc R5,R3
 0530 1201              movw R2,R4
 0532 4424              clr R4
 0534 37FC              sbrc R3,7
 0536 4094              com R4
 0538 5524              clr R5
 053A 47FC              sbrc R4,7
 053C 5094              com R5
 053E F501              movw R30,R10
 0540 2082              std z+0,R2
 0542 3182              std z+1,R3

⌨️ 快捷键说明

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