📄 fat.lis
字号:
03BE 2A20 and R2,R10
03C0 3B20 and R3,R11
03C2 2220 tst R2
03C4 19F4 brne X3
03C6 3320 tst R3
03C8 09F4 brne X11
03CA C6C2 xjmp L53
03CC X11:
03CC X3:
03CC .dbline 127
03CC ; counter--;
03CC 0C84 ldd R0,y+12
03CE 0A94 dec R0
03D0 0C86 std y+12,R0
03D2 .dbline 128
03D2 ; }
03D2 C2C2 xjmp L53
03D4 L52:
03D4 .dbline 129
03D4 ; else if((buffer[0]!=0XE5)&(buffer[11]==0x0f)&(buffer[12]==0x00))
03D4 80910000 lds R24,_buffer
03D8 853E cpi R24,229
03DA 21F0 breq L71
03DC 81E0 ldi R24,1
03DE 90E0 ldi R25,0
03E0 7C01 movw R14,R24
03E2 02C0 xjmp L72
03E4 L71:
03E4 EE24 clr R14
03E6 FF24 clr R15
03E8 L72:
03E8 80910B00 lds R24,_buffer+11
03EC 8F30 cpi R24,15
03EE 21F4 brne L73
03F0 81E0 ldi R24,1
03F2 90E0 ldi R25,0
03F4 6C01 movw R12,R24
03F6 02C0 xjmp L74
03F8 L73:
03F8 CC24 clr R12
03FA DD24 clr R13
03FC L74:
03FC 20900C00 lds R2,_buffer+12
0400 2220 tst R2
0402 21F4 brne L75
0404 81E0 ldi R24,1
0406 90E0 ldi R25,0
0408 5C01 movw R10,R24
040A 02C0 xjmp L76
040C L75:
040C AA24 clr R10
040E BB24 clr R11
0410 L76:
0410 1701 movw R2,R14
0412 2C20 and R2,R12
0414 3D20 and R3,R13
0416 2A20 and R2,R10
0418 3B20 and R3,R11
041A 2220 tst R2
041C 19F4 brne X4
041E 3320 tst R3
0420 09F4 brne X12
0422 50C2 xjmp L67
0424 X12:
0424 X4:
0424 .dbline 130
0424 ; {i=buffer[0]-0x40;
0424 .dbline 130
0424 80910000 lds R24,_buffer
0428 8054 subi R24,64
042A 8B87 std y+11,R24
042C .dbline 131
042C ; for(j=0;j<i;j++)
042C 0024 clr R0
042E 0A86 std y+10,R0
0430 32C0 xjmp L80
0432 L77:
0432 .dbline 132
0432 .dbline 133
0432 80E2 ldi R24,32
0434 90E0 ldi R25,0
0436 9B83 std y+3,R25
0438 8A83 std y+2,R24
043A 25E0 ldi R18,5
043C 30E0 ldi R19,0
043E 0A85 ldd R16,y+10
0440 1127 clr R17
0442 0F5F subi R16,255 ; offset = 1
0444 1F4F sbci R17,255
0446 0E940000 xcall lsl16
044A 1801 movw R2,R16
044C 80E0 ldi R24,<_buffer
044E 90E0 ldi R25,>_buffer
0450 280E add R2,R24
0452 391E adc R3,R25
0454 3982 std y+1,R3
0456 2882 std y+0,R2
0458 2884 ldd R2,y+8
045A 3984 ldd R3,y+9
045C C101 movw R24,R2
045E 0196 adiw R24,1
0460 9987 std y+9,R25
0462 8887 std y+8,R24
0464 85E0 ldi R24,5
0466 90E0 ldi R25,0
0468 4424 clr R4
046A 5524 clr R5
046C 8A93 st -y,R24
046E 8101 movw R16,R2
0470 9201 movw R18,R4
0472 0E940000 xcall lsl32
0476 FE01 movw R30,R28
0478 2480 ldd R2,z+4
047A 3580 ldd R3,z+5
047C 4680 ldd R4,z+6
047E 5780 ldd R5,z+7
0480 200E add R2,R16
0482 311E adc R3,R17
0484 421E adc R4,R18
0486 531E adc R5,R19
0488 8101 movw R16,R2
048A 9201 movw R18,R4
048C 0E940000 xcall _SD_read_sector2
0490 .dbline 135
0490 L78:
0490 .dbline 131
0490 0A84 ldd R0,y+10
0492 0394 inc R0
0494 0A86 std y+10,R0
0496 L80:
0496 .dbline 131
0496 0A84 ldd R0,y+10
0498 0B85 ldd R16,y+11
049A 0016 cp R0,R16
049C 08F4 brsh X13
049E C9CF xjmp L77
04A0 X13:
04A0 .dbline 136
04A0 ; {
04A0 ; SD_read_sector2(mulu_Clus_number+((long)(Read_number++)<<5),buffer+(((int)j+1)<<5),32);
04A0 ;
04A0 ; }
04A0 ; if((buffer[((int)i<<5)+8]==0x4D)&(buffer[((int)i<<5)+9]==0x50)&(buffer[((int)i<<5)+10]==0x33))
04A0 25E0 ldi R18,5
04A2 30E0 ldi R19,0
04A4 1127 clr R17
04A6 0E940000 xcall lsl16
04AA F801 movw R30,R16
04AC 80E0 ldi R24,<_buffer+8
04AE 90E0 ldi R25,>_buffer+8
04B0 E80F add R30,R24
04B2 F91F adc R31,R25
04B4 8081 ldd R24,z+0
04B6 8D34 cpi R24,77
04B8 21F4 brne L86
04BA 81E0 ldi R24,1
04BC 90E0 ldi R25,0
04BE 7C01 movw R14,R24
04C0 02C0 xjmp L87
04C2 L86:
04C2 EE24 clr R14
04C4 FF24 clr R15
04C6 L87:
04C6 25E0 ldi R18,5
04C8 30E0 ldi R19,0
04CA 0B85 ldd R16,y+11
04CC 1127 clr R17
04CE 0E940000 xcall lsl16
04D2 F801 movw R30,R16
04D4 80E0 ldi R24,<_buffer+9
04D6 90E0 ldi R25,>_buffer+9
04D8 E80F add R30,R24
04DA F91F adc R31,R25
04DC 8081 ldd R24,z+0
04DE 8035 cpi R24,80
04E0 21F4 brne L88
04E2 81E0 ldi R24,1
04E4 90E0 ldi R25,0
04E6 6C01 movw R12,R24
04E8 02C0 xjmp L89
04EA L88:
04EA CC24 clr R12
04EC DD24 clr R13
04EE L89:
04EE 25E0 ldi R18,5
04F0 30E0 ldi R19,0
04F2 0B85 ldd R16,y+11
04F4 1127 clr R17
04F6 0E940000 xcall lsl16
04FA F801 movw R30,R16
04FC 80E0 ldi R24,<_buffer+10
04FE 90E0 ldi R25,>_buffer+10
0500 E80F add R30,R24
0502 F91F adc R31,R25
0504 8081 ldd R24,z+0
0506 8333 cpi R24,51
0508 21F4 brne L90
050A 81E0 ldi R24,1
050C 90E0 ldi R25,0
050E 5C01 movw R10,R24
0510 02C0 xjmp L91
0512 L90:
0512 AA24 clr R10
0514 BB24 clr R11
0516 L91:
0516 1701 movw R2,R14
0518 2C20 and R2,R12
051A 3D20 and R3,R13
051C 2A20 and R2,R10
051E 3B20 and R3,R11
0520 2220 tst R2
0522 19F4 brne X5
0524 3320 tst R3
0526 09F4 brne X14
0528 17C2 xjmp L68
052A X14:
052A X5:
052A .dbline 137
052A ; { //处理数据了。
052A .dbline 138
052A ; mp3_info.DIR_FstClusL[0]=buffer[((int)i<<5)+26];
052A 25E0 ldi R18,5
052C 30E0 ldi R19,0
052E 0B85 ldd R16,y+11
0530 1127 clr R17
0532 0E940000 xcall lsl16
0536 F801 movw R30,R16
0538 80E0 ldi R24,<_buffer+26
053A 90E0 ldi R25,>_buffer+26
053C E80F add R30,R24
053E F91F adc R31,R25
0540 2080 ldd R2,z+0
0542 20923500 sts _mp3_info+53,R2
0546 .dbline 139
0546 ; mp3_info.DIR_FstClusL[1]=buffer[((int)i<<5)+27];
0546 25E0 ldi R18,5
0548 30E0 ldi R19,0
054A 0B85 ldd R16,y+11
054C 1127 clr R17
054E 0E940000 xcall lsl16
0552 F801 movw R30,R16
0554 80E0 ldi R24,<_buffer+27
0556 90E0 ldi R25,>_buffer+27
0558 E80F add R30,R24
055A F91F adc R31,R25
055C 2080 ldd R2,z+0
055E 20923600 sts _mp3_info+53+1,R2
0562 .dbline 142
0562 ;
0562 ; //mp3_info.DIR_Filesize[0]=buffer[32*i+28];
0562 ; mp3_info.DIR_Filesize[0]=buffer[((int)i<<5)+29];
0562 25E0 ldi R18,5
0564 30E0 ldi R19,0
0566 0B85 ldd R16,y+11
0568 1127 clr R17
056A 0E940000 xcall lsl16
056E F801 movw R30,R16
0570 80E0 ldi R24,<_buffer+29
0572 90E0 ldi R25,>_buffer+29
0574 E80F add R30,R24
0576 F91F adc R31,R25
0578 2080 ldd R2,z+0
057A 20923700 sts _mp3_info+55,R2
057E .dbline 143
057E ; mp3_info.DIR_Filesize[1]=buffer[((int)i<<5)+30];
057E 25E0 ldi R18,5
0580 30E0 ldi R19,0
0582 0B85 ldd R16,y+11
0584 1127 clr R17
0586 0E940000 xcall lsl16
058A F801 movw R30,R16
058C 80E0 ldi R24,<_buffer+30
058E 90E0 ldi R25,>_buffer+30
0590 E80F add R30,R24
0592 F91F adc R31,R25
0594 2080 ldd R2,z+0
0596 20923800 sts _mp3_info+55+1,R2
059A .dbline 147
059A ; //mp3_info.DIR_Filesize[3]=buffer[32*i+31];
059A ;
059A ;
059A ; if((UNICODE_point>0)&(CHINALIB_point>0))
059A 40E0 ldi R20,0
059C 50E0 ldi R21,0
059E 60E0 ldi R22,0
05A0 70E0 ldi R23,0
05A2 40900600 lds R4,_UNICODE_point+2
05A6 50900700 lds R5,_UNICODE_point+2+1
05AA 20900400 lds R2,_UNICODE_point
05AE 30900500 lds R3,_UNICODE_point+1
05B2 2416 cp R2,R20
05B4 3506 cpc R3,R21
05B6 4606 cpc R4,R22
05B8 5706 cpc R5,R23
05BA 21F0 breq L104
05BC 81E0 ldi R24,1
05BE 90E0 ldi R25,0
05C0 6C01 movw R12,R24
05C2 02C0 xjmp L105
05C4 L104:
05C4 CC24 clr R12
05C6 DD24 clr R13
05C8 L105:
05C8 40E0 ldi R20,0
05CA 50E0 ldi R21,0
05CC 60E0 ldi R22,0
05CE 70E0 ldi R23,0
05D0 40900200 lds R4,_CHINALIB_point+2
05D4 50900300 lds R5,_CHINALIB_point+2+1
05D8 20900000 lds R2,_CHINALIB_point
05DC 30900100 lds R3,_CHINALIB_point+1
05E0 2416 cp R2,R20
05E2 3506 cpc R3,R21
05E4 4606 cpc R4,R22
05E6 5706 cpc R5,R23
05E8 21F0 breq L106
05EA 81E0 ldi R24,1
05EC 90E0 ldi R25,0
05EE 5C01 movw R10,R24
05F0 02C0 xjmp L107
05F2 L106:
05F2 AA24 clr R10
05F4 BB24 clr R11
05F6 L107:
05F6 1601 movw R2,R12
05F8 2A20 and R2,R10
05FA 3B20 and R3,R11
05FC 2220 tst R2
05FE 19F4 brne X6
0600 3320 tst R3
0602 09F4 brne X15
0604 5BC1 xjmp L102
0606 X15:
0606 X6:
0606 .dbline 148
0606 ; {Read_number=0;
0606 .dbline 148
0606 0024 clr R0
0608 1124 clr R1
060A 1986 std y+9,R1
060C 0886 std y+8,R0
060E 75C0 xjmp L109
0610 L108:
0610 .dbline 150
0610 ; while(i--)
0610 ; {
0610 .dbline 151
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -