📄 mp3.lst
字号:
0D5A 860A STD Y+10,R0
0D5B 840A LDD R0,Y+10
0D5C 850B LDD R16,Y+11
0D5D 1600 CP R0,R16
0D5E F408 BCC 0x0D60
0D5F CFC9 RJMP 0x0D29
(0134)
(0135) }
(0136) if((buffer[((int)i<<5)+8]==0x4D)&(buffer[((int)i<<5)+9]==0x50)&(buffer[((int)i<<5)+10]==0x33))
0D60 E025 LDI R18,5
0D61 E030 LDI R19,0
0D62 2711 CLR R17
0D63 940E1D37 CALL lsl16
0D65 01F8 MOVW R30,R16
0D66 E18D LDI R24,0x1D
0D67 E091 LDI R25,1
0D68 0FE8 ADD R30,R24
0D69 1FF9 ADC R31,R25
0D6A 8180 LDD R24,Z+0
0D6B 348D CPI R24,0x4D
0D6C F421 BNE 0x0D71
0D6D E081 LDI R24,1
0D6E E090 LDI R25,0
0D6F 017C MOVW R14,R24
0D70 C002 RJMP 0x0D73
0D71 24EE CLR R14
0D72 24FF CLR R15
0D73 E025 LDI R18,5
0D74 E030 LDI R19,0
0D75 850B LDD R16,Y+11
0D76 2711 CLR R17
0D77 940E1D37 CALL lsl16
0D79 01F8 MOVW R30,R16
0D7A E18E LDI R24,0x1E
0D7B E091 LDI R25,1
0D7C 0FE8 ADD R30,R24
0D7D 1FF9 ADC R31,R25
0D7E 8180 LDD R24,Z+0
0D7F 3580 CPI R24,0x50
0D80 F421 BNE 0x0D85
0D81 E081 LDI R24,1
0D82 E090 LDI R25,0
0D83 016C MOVW R12,R24
0D84 C002 RJMP 0x0D87
0D85 24CC CLR R12
0D86 24DD CLR R13
0D87 E025 LDI R18,5
0D88 E030 LDI R19,0
0D89 850B LDD R16,Y+11
0D8A 2711 CLR R17
0D8B 940E1D37 CALL lsl16
0D8D 01F8 MOVW R30,R16
0D8E E18F LDI R24,0x1F
0D8F E091 LDI R25,1
0D90 0FE8 ADD R30,R24
0D91 1FF9 ADC R31,R25
0D92 8180 LDD R24,Z+0
0D93 3383 CPI R24,0x33
0D94 F421 BNE 0x0D99
0D95 E081 LDI R24,1
0D96 E090 LDI R25,0
0D97 015C MOVW R10,R24
0D98 C002 RJMP 0x0D9B
0D99 24AA CLR R10
0D9A 24BB CLR R11
0D9B 0117 MOVW R2,R14
0D9C 202C AND R2,R12
0D9D 203D AND R3,R13
0D9E 202A AND R2,R10
0D9F 203B AND R3,R11
0DA0 2022 TST R2
0DA1 F419 BNE 0x0DA5
0DA2 2033 TST R3
0DA3 F409 BNE 0x0DA5
0DA4 C217 RJMP 0x0FBC
(0137) { //处理数据了。
(0138) mp3_info.DIR_FstClusL[0]=buffer[((int)i<<5)+26];
0DA5 E025 LDI R18,5
0DA6 E030 LDI R19,0
0DA7 850B LDD R16,Y+11
0DA8 2711 CLR R17
0DA9 940E1D37 CALL lsl16
0DAB 01F8 MOVW R30,R16
0DAC E28F LDI R24,0x2F
0DAD E091 LDI R25,1
0DAE 0FE8 ADD R30,R24
0DAF 1FF9 ADC R31,R25
0DB0 8020 LDD R2,Z+0
0DB1 9220010A STS 0x10A,R2
(0139) mp3_info.DIR_FstClusL[1]=buffer[((int)i<<5)+27];
0DB3 E025 LDI R18,5
0DB4 E030 LDI R19,0
0DB5 850B LDD R16,Y+11
0DB6 2711 CLR R17
0DB7 940E1D37 CALL lsl16
0DB9 01F8 MOVW R30,R16
0DBA E380 LDI R24,0x30
0DBB E091 LDI R25,1
0DBC 0FE8 ADD R30,R24
0DBD 1FF9 ADC R31,R25
0DBE 8020 LDD R2,Z+0
0DBF 9220010B STS 0x10B,R2
(0140)
(0141) //mp3_info.DIR_Filesize[0]=buffer[32*i+28];
(0142) mp3_info.DIR_Filesize[0]=buffer[((int)i<<5)+29];
0DC1 E025 LDI R18,5
0DC2 E030 LDI R19,0
0DC3 850B LDD R16,Y+11
0DC4 2711 CLR R17
0DC5 940E1D37 CALL lsl16
0DC7 01F8 MOVW R30,R16
0DC8 E382 LDI R24,0x32
0DC9 E091 LDI R25,1
0DCA 0FE8 ADD R30,R24
0DCB 1FF9 ADC R31,R25
0DCC 8020 LDD R2,Z+0
0DCD 9220010C STS 0x10C,R2
(0143) mp3_info.DIR_Filesize[1]=buffer[((int)i<<5)+30];
0DCF E025 LDI R18,5
0DD0 E030 LDI R19,0
0DD1 850B LDD R16,Y+11
0DD2 2711 CLR R17
0DD3 940E1D37 CALL lsl16
0DD5 01F8 MOVW R30,R16
0DD6 E383 LDI R24,0x33
0DD7 E091 LDI R25,1
0DD8 0FE8 ADD R30,R24
0DD9 1FF9 ADC R31,R25
0DDA 8020 LDD R2,Z+0
0DDB 9220010D STS 0x10D,R2
(0144) //mp3_info.DIR_Filesize[3]=buffer[32*i+31];
(0145)
(0146)
(0147) if((UNICODE_point>0)&(CHINALIB_point>0))
0DDD E040 LDI R20,0
0DDE E050 LDI R21,0
0DDF E060 LDI R22,0
0DE0 E070 LDI R23,0
0DE1 90400075 LDS R4,UNICODE_point+2
0DE3 90500076 LDS R5,UNICODE_point+3
0DE5 90200073 LDS R2,UNICODE_point
0DE7 90300074 LDS R3,UNICODE_point+1
0DE9 1624 CP R2,R20
0DEA 0635 CPC R3,R21
0DEB 0646 CPC R4,R22
0DEC 0657 CPC R5,R23
0DED F021 BEQ 0x0DF2
0DEE E081 LDI R24,1
0DEF E090 LDI R25,0
0DF0 016C MOVW R12,R24
0DF1 C002 RJMP 0x0DF4
0DF2 24CC CLR R12
0DF3 24DD CLR R13
0DF4 E040 LDI R20,0
0DF5 E050 LDI R21,0
0DF6 E060 LDI R22,0
0DF7 E070 LDI R23,0
0DF8 90400071 LDS R4,CHINALIB_point+2
0DFA 90500072 LDS R5,CHINALIB_point+3
0DFC 9020006F LDS R2,CHINALIB_point
0DFE 90300070 LDS R3,CHINALIB_point+1
0E00 1624 CP R2,R20
0E01 0635 CPC R3,R21
0E02 0646 CPC R4,R22
0E03 0657 CPC R5,R23
0E04 F021 BEQ 0x0E09
0E05 E081 LDI R24,1
0E06 E090 LDI R25,0
0E07 015C MOVW R10,R24
0E08 C002 RJMP 0x0E0B
0E09 24AA CLR R10
0E0A 24BB CLR R11
0E0B 0116 MOVW R2,R12
0E0C 202A AND R2,R10
0E0D 203B AND R3,R11
0E0E 2022 TST R2
0E0F F419 BNE 0x0E13
0E10 2033 TST R3
0E11 F409 BNE 0x0E13
0E12 C15B RJMP 0x0F6E
(0148) {Read_number=0;
0E13 2400 CLR R0
0E14 2411 CLR R1
0E15 8619 STD Y+9,R1
0E16 8608 STD Y+8,R0
0E17 C075 RJMP 0x0E8D
(0149) while(i--)
(0150) {
(0151) for(j=0;j<10;j++)
0E18 2400 CLR R0
0E19 860A STD Y+10,R0
0E1A C021 RJMP 0x0E3C
(0152) buffer[300+Read_number++]=buffer[((int)i<<5)+j+1];
0E1B 8428 LDD R2,Y+8
0E1C 8439 LDD R3,Y+9
0E1D 01C1 MOVW R24,R2
0E1E 9601 ADIW R24,1
0E1F 8799 STD Y+9,R25
0E20 8788 STD Y+8,R24
0E21 E025 LDI R18,5
0E22 E030 LDI R19,0
0E23 850B LDD R16,Y+11
0E24 2711 CLR R17
0E25 940E1D37 CALL lsl16
0E27 01F8 MOVW R30,R16
0E28 844A LDD R4,Y+10
0E29 2455 CLR R5
0E2A 0DE4 ADD R30,R4
0E2B 1DF5 ADC R31,R5
0E2C E186 LDI R24,0x16
0E2D E091 LDI R25,1
0E2E 0FE8 ADD R30,R24
0E2F 1FF9 ADC R31,R25
0E30 8040 LDD R4,Z+0
0E31 E185 LDI R24,0x15
0E32 E091 LDI R25,1
0E33 01F1 MOVW R30,R2
0E34 5DE4 SUBI R30,0xD4
0E35 4FFE SBCI R31,0xFE
0E36 0FE8 ADD R30,R24
0E37 1FF9 ADC R31,R25
0E38 8240 STD Z+0,R4
0E39 840A LDD R0,Y+10
0E3A 9403 INC R0
0E3B 860A STD Y+10,R0
0E3C 858A LDD R24,Y+10
0E3D 308A CPI R24,0xA
0E3E F2E0 BCS 0x0E1B
(0153) for(j=0;j<12;j++)
0E3F 2400 CLR R0
0E40 860A STD Y+10,R0
0E41 C021 RJMP 0x0E63
(0154) buffer[300+Read_number++]=buffer[((int)i<<5)+j+14];
0E42 8428 LDD R2,Y+8
0E43 8439 LDD R3,Y+9
0E44 01C1 MOVW R24,R2
0E45 9601 ADIW R24,1
0E46 8799 STD Y+9,R25
0E47 8788 STD Y+8,R24
0E48 E025 LDI R18,5
0E49 E030 LDI R19,0
0E4A 850B LDD R16,Y+11
0E4B 2711 CLR R17
0E4C 940E1D37 CALL lsl16
0E4E 01F8 MOVW R30,R16
0E4F 844A LDD R4,Y+10
0E50 2455 CLR R5
0E51 0DE4 ADD R30,R4
0E52 1DF5 ADC R31,R5
0E53 E283 LDI R24,0x23
0E54 E091 LDI R25,1
0E55 0FE8 ADD R30,R24
0E56 1FF9 ADC R31,R25
0E57 8040 LDD R4,Z+0
0E58 E185 LDI R24,0x15
0E59 E091 LDI R25,1
0E5A 01F1 MOVW R30,R2
0E5B 5DE4 SUBI R30,0xD4
0E5C 4FFE SBCI R31,0xFE
0E5D 0FE8 ADD R30,R24
0E5E 1FF9 ADC R31,R25
0E5F 8240 STD Z+0,R4
0E60 840A LDD R0,Y+10
0E61 9403 INC R0
0E62 860A STD Y+10,R0
0E63 858A LDD R24,Y+10
0E64 308C CPI R24,0xC
0E65 F2E0 BCS 0x0E42
(0155) for(j=0;j<4;j++)
0E66 2400 CLR R0
0E67 860A STD Y+10,R0
0E68 C021 RJMP 0x0E8A
(0156) buffer[300+Read_number++]=buffer[((int)i<<5)+j+28];
0E69 8428 LDD R2,Y+8
0E6A 8439 LDD R3,Y+9
0E6B 01C1 MOVW R24,R2
0E6C 9601 ADIW R24,1
0E6D 8799 STD Y+9,R25
0E6E 8788 STD Y+8,R24
0E6F E025 LDI R18,5
0E70 E030 LDI R19,0
0E71 850B LDD R16,Y+11
0E72 2711 CLR R17
0E73 940E1D37 CALL lsl16
0E75 01F8 MOVW R30,R16
0E76 844A LDD R4,Y+10
0E77 2455 CLR R5
0E78 0DE4 ADD R30,R4
0E79 1DF5 ADC R31,R5
0E7A E381 LDI R24,0x31
0E7B E091 LDI R25,1
0E7C 0FE8 ADD R30,R24
0E7D 1FF9 ADC R31,R25
0E7E 8040 LDD R4,Z+0
0E7F E185 LDI R24,0x15
0E80 E091 LDI R25,1
0E81 01F1 MOVW R30,R2
0E82 5DE4 SUBI R30,0xD4
0E83 4FFE SBCI R31,0xFE
0E84 0FE8 ADD R30,R24
0E85 1FF9 ADC R31,R25
0E86 8240 STD Z+0,R4
0E87 840A LDD R0,Y+10
0E88 9403 INC R0
0E89 860A STD Y+10,R0
0E8A 858A LDD R24,Y+10
0E8B 3084 CPI R24,4
0E8C F2E0 BCS 0x0E69
0E8D 842B LDD R2,Y+11
0E8E 2433 CLR R3
0E8F 2D82 MOV R24,R2
0E90 5081 SUBI R24,1
0E91 878B STD Y+11,R24
0E92 2022 TST R2
0E93 F009 BEQ 0x0E95
0E94 CF83 RJMP 0x0E18
(0157) }
(0158) mp3_info.Name_number=MAX_NAME_LENGTH;
0E95 E18A LDI R24,0x1A
0E96 93800109 STS 0x109,R24
(0159)
(0160) for(j=0;j<mp3_info.Name_number;j++)
0E98 2400 CLR R0
0E99 860A STD Y+10,R0
0E9A C0CD RJMP 0x0F68
(0161) {
(0162) if((buffer[300+j*2]==0x2E)&(buffer[300+j*2+6]==0x33))
0E9B E082 LDI R24,2
0E9C 840A LDD R0,Y+10
0E9D 9D80 MUL R24,R0
0E9E 01F0 MOVW R30,R0
0E9F E481 LDI R24,0x41
0EA0 E092 LDI R25,2
0EA1 0FE8 ADD R30,R24
0EA2 1FF9 ADC R31,R25
0EA3 8180 LDD R24,Z+0
0EA4 328E CPI R24,0x2E
0EA5 F421 BNE 0x0EAA
0EA6 E081 LDI R24,1
0EA7 E090 LDI R25,0
0EA8 016C MOVW R12,R24
0EA9 C002 RJMP 0x0EAC
0EAA 24CC CLR R12
0EAB 24DD CLR R13
0EAC E082 LDI R24,2
0EAD 840A LDD R0,Y+10
0EAE 9D80 MUL R24,R0
0EAF 01F0 MOVW R30,R0
0EB0 E487 LDI R24,0x47
0EB1 E092 LDI R25,2
0EB2 0FE8 ADD R30,R24
0EB3 1FF9 ADC R31,R25
0EB4 8180 LDD R24,Z+0
0EB5 3383 CPI R24,0x33
0EB6 F421 BNE 0x0EBB
0EB7 E081 LDI R24,1
0EB8 E090 LDI R25,0
0EB9 015C MOVW R10,R24
0EBA C002 RJMP 0x0EBD
0EBB 24AA CLR R10
0EBC 24BB CLR R11
0EBD 0116 MOVW R2,R12
0EBE 202A AND R2,R10
0EBF 203B AND R3,R11
0EC0 2022 TST R2
0EC1 F411 BNE 0x0EC4
0EC2 2033 TST R3
0EC3 F019 BEQ 0x0EC7
(0163) mp3_info.Name_number=j;
0EC4 840A LDD R0,Y+10
0EC5 92000109 STS 0x109,R0
(0164) for(i=0;i<31;i++)
0EC7 2400 CLR R0
0EC8 860B STD Y+11,R0
0EC9 C089 RJMP 0x0F53
(0165) {
(0166) SD_read_sector2(UNICODE_point+((int)i<<8),buffer,256);
0ECA E080 LDI R24,0
0ECB E091 LDI R25,1
0ECC 839B STD Y+3,R25
0ECD 838A STD Y+2,R24
0ECE E185 LDI R24,0x15
0ECF E091 LDI R25,1
0ED0 8399 STD Y+1,R25
0ED1 8388 STD Y+0,R24
0ED2 842B LDD R2,Y+11
0ED3 2433 CLR R3
0ED4 2C32 MOV R3,R2
0ED5 2422 CLR R2
0ED6 2444 CLR R4
0ED7 FC37 SBRC R3,7
0ED8 9440 COM R4
0ED9 2455 CLR R5
0EDA FC47 SBRC R4,7
0EDB 9450 COM R5
0EDC 90800075 LDS R8,UNICODE_point+2
0EDE 90900076 LDS R9,UNICODE_point+3
0EE0 90600073 LDS R6,UNICODE_point
0EE2 90700074 LDS R7,UNICODE_point+1
0EE4 0C62 ADD R6,R2
0EE5 1C73 ADC R7,R3
0EE6 1C84 ADC R8,R4
0EE7 1C95 ADC R9,R5
0EE8 0183 MOVW R16,R6
0EE9 0194 MOVW R18,R8
0EEA 940E1567 CALL _SD_read_sector2
(0167) for(Read_number=0;Read_number<128;Read_number++)
0EEC 2400 CLR R0
0EED 2411 CLR R1
0EEE 8619 STD Y+9,R1
0EEF 8608 STD Y+8,R0
0EF0 C058 RJMP 0x0F49
(0168) {
(0169) if((buffer[Read_number<<1]==buffer[300+j*2])&(buffer[(Read_number<<1)+1]==buffer[300+j*2+1]))
0EF1 E082 LDI R24,2
0EF2 840A LDD R0,Y+10
0EF3 9D80 MUL R24,R0
0EF4 01F0 MOVW R30,R0
0EF5 E481 LDI R24,0x41
0EF6 E092 LDI R25,2
0EF7 0FE8 ADD R30,R24
0EF8 1FF9 ADC R31,R25
0EF9 8020 LDD R2,Z+0
0EFA E185 LDI R24,0x15
0EFB E091 LDI R25,1
0EFC 85E8 LDD R30,Y+8
0EFD 85F9 LDD R31,Y+9
0EFE 0FEE LSL R30
0EFF 1F
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -