📄 fat.lis
字号:
0610 ; for(j=0;j<10;j++)
0610 0024 clr R0
0612 0A86 std y+10,R0
0614 21C0 xjmp L114
0616 L111:
0616 .dbline 152
0616 2884 ldd R2,y+8
0618 3984 ldd R3,y+9
061A C101 movw R24,R2
061C 0196 adiw R24,1
061E 9987 std y+9,R25
0620 8887 std y+8,R24
0622 25E0 ldi R18,5
0624 30E0 ldi R19,0
0626 0B85 ldd R16,y+11
0628 1127 clr R17
062A 0E940000 xcall lsl16
062E F801 movw R30,R16
0630 4A84 ldd R4,y+10
0632 5524 clr R5
0634 E40D add R30,R4
0636 F51D adc R31,R5
0638 80E0 ldi R24,<_buffer+1
063A 90E0 ldi R25,>_buffer+1
063C E80F add R30,R24
063E F91F adc R31,R25
0640 4080 ldd R4,z+0
0642 80E0 ldi R24,<_buffer
0644 90E0 ldi R25,>_buffer
0646 F101 movw R30,R2
0648 E45D subi R30,212 ; offset = 300
064A FE4F sbci R31,254
064C E80F add R30,R24
064E F91F adc R31,R25
0650 4082 std z+0,R4
0652 L112:
0652 .dbline 151
0652 0A84 ldd R0,y+10
0654 0394 inc R0
0656 0A86 std y+10,R0
0658 L114:
0658 .dbline 151
0658 8A85 ldd R24,y+10
065A 8A30 cpi R24,10
065C E0F2 brlo L111
065E .dbline 153
065E ; buffer[300+Read_number++]=buffer[((int)i<<5)+j+1];
065E ; for(j=0;j<12;j++)
065E 0024 clr R0
0660 0A86 std y+10,R0
0662 21C0 xjmp L119
0664 L116:
0664 .dbline 154
0664 2884 ldd R2,y+8
0666 3984 ldd R3,y+9
0668 C101 movw R24,R2
066A 0196 adiw R24,1
066C 9987 std y+9,R25
066E 8887 std y+8,R24
0670 25E0 ldi R18,5
0672 30E0 ldi R19,0
0674 0B85 ldd R16,y+11
0676 1127 clr R17
0678 0E940000 xcall lsl16
067C F801 movw R30,R16
067E 4A84 ldd R4,y+10
0680 5524 clr R5
0682 E40D add R30,R4
0684 F51D adc R31,R5
0686 80E0 ldi R24,<_buffer+14
0688 90E0 ldi R25,>_buffer+14
068A E80F add R30,R24
068C F91F adc R31,R25
068E 4080 ldd R4,z+0
0690 80E0 ldi R24,<_buffer
0692 90E0 ldi R25,>_buffer
0694 F101 movw R30,R2
0696 E45D subi R30,212 ; offset = 300
0698 FE4F sbci R31,254
069A E80F add R30,R24
069C F91F adc R31,R25
069E 4082 std z+0,R4
06A0 L117:
06A0 .dbline 153
06A0 0A84 ldd R0,y+10
06A2 0394 inc R0
06A4 0A86 std y+10,R0
06A6 L119:
06A6 .dbline 153
06A6 8A85 ldd R24,y+10
06A8 8C30 cpi R24,12
06AA E0F2 brlo L116
06AC .dbline 155
06AC ; buffer[300+Read_number++]=buffer[((int)i<<5)+j+14];
06AC ; for(j=0;j<4;j++)
06AC 0024 clr R0
06AE 0A86 std y+10,R0
06B0 21C0 xjmp L124
06B2 L121:
06B2 .dbline 156
06B2 2884 ldd R2,y+8
06B4 3984 ldd R3,y+9
06B6 C101 movw R24,R2
06B8 0196 adiw R24,1
06BA 9987 std y+9,R25
06BC 8887 std y+8,R24
06BE 25E0 ldi R18,5
06C0 30E0 ldi R19,0
06C2 0B85 ldd R16,y+11
06C4 1127 clr R17
06C6 0E940000 xcall lsl16
06CA F801 movw R30,R16
06CC 4A84 ldd R4,y+10
06CE 5524 clr R5
06D0 E40D add R30,R4
06D2 F51D adc R31,R5
06D4 80E0 ldi R24,<_buffer+28
06D6 90E0 ldi R25,>_buffer+28
06D8 E80F add R30,R24
06DA F91F adc R31,R25
06DC 4080 ldd R4,z+0
06DE 80E0 ldi R24,<_buffer
06E0 90E0 ldi R25,>_buffer
06E2 F101 movw R30,R2
06E4 E45D subi R30,212 ; offset = 300
06E6 FE4F sbci R31,254
06E8 E80F add R30,R24
06EA F91F adc R31,R25
06EC 4082 std z+0,R4
06EE L122:
06EE .dbline 155
06EE 0A84 ldd R0,y+10
06F0 0394 inc R0
06F2 0A86 std y+10,R0
06F4 L124:
06F4 .dbline 155
06F4 8A85 ldd R24,y+10
06F6 8430 cpi R24,4
06F8 E0F2 brlo L121
06FA .dbline 157
06FA L109:
06FA .dbline 149
06FA 2B84 ldd R2,y+11
06FC 3324 clr R3
06FE 822D mov R24,R2
0700 8150 subi R24,1
0702 8B87 std y+11,R24
0704 2220 tst R2
0706 09F0 breq X16
0708 83CF xjmp L108
070A X16:
070A .dbline 158
070A ; buffer[300+Read_number++]=buffer[((int)i<<5)+j+28];
070A ; }
070A ; mp3_info.Name_number=MAX_NAME_LENGTH;
070A 8AE1 ldi R24,26
070C 80933400 sts _mp3_info+52,R24
0710 .dbline 160
0710 ;
0710 ; for(j=0;j<mp3_info.Name_number;j++)
0710 0024 clr R0
0712 0A86 std y+10,R0
0714 CDC0 xjmp L130
0716 L127:
0716 .dbline 161
0716 ; {
0716 .dbline 162
0716 ; if((buffer[300+j*2]==0x2E)&(buffer[300+j*2+6]==0x33))
0716 82E0 ldi R24,2
0718 0A84 ldd R0,y+10
071A 809D mul R24,R0
071C F001 movw R30,R0
071E 80E0 ldi R24,<_buffer+300
0720 90E0 ldi R25,>_buffer+300
0722 E80F add R30,R24
0724 F91F adc R31,R25
0726 8081 ldd R24,z+0
0728 8E32 cpi R24,46
072A 21F4 brne L136
072C 81E0 ldi R24,1
072E 90E0 ldi R25,0
0730 6C01 movw R12,R24
0732 02C0 xjmp L137
0734 L136:
0734 CC24 clr R12
0736 DD24 clr R13
0738 L137:
0738 82E0 ldi R24,2
073A 0A84 ldd R0,y+10
073C 809D mul R24,R0
073E F001 movw R30,R0
0740 80E0 ldi R24,<_buffer+306
0742 90E0 ldi R25,>_buffer+306
0744 E80F add R30,R24
0746 F91F adc R31,R25
0748 8081 ldd R24,z+0
074A 8333 cpi R24,51
074C 21F4 brne L138
074E 81E0 ldi R24,1
0750 90E0 ldi R25,0
0752 5C01 movw R10,R24
0754 02C0 xjmp L139
0756 L138:
0756 AA24 clr R10
0758 BB24 clr R11
075A L139:
075A 1601 movw R2,R12
075C 2A20 and R2,R10
075E 3B20 and R3,R11
0760 2220 tst R2
0762 11F4 brne X7
0764 3320 tst R3
0766 19F0 breq L132
0768 X7:
0768 .dbline 163
0768 ; mp3_info.Name_number=j;
0768 0A84 ldd R0,y+10
076A 00923400 sts _mp3_info+52,R0
076E L132:
076E .dbline 164
076E ; for(i=0;i<31;i++)
076E 0024 clr R0
0770 0B86 std y+11,R0
0772 89C0 xjmp L144
0774 L141:
0774 .dbline 165
0774 ; {
0774 .dbline 166
0774 ; SD_read_sector2(UNICODE_point+((int)i<<8),buffer,256);
0774 80E0 ldi R24,256
0776 91E0 ldi R25,1
0778 9B83 std y+3,R25
077A 8A83 std y+2,R24
077C 80E0 ldi R24,<_buffer
077E 90E0 ldi R25,>_buffer
0780 9983 std y+1,R25
0782 8883 std y+0,R24
0784 2B84 ldd R2,y+11
0786 3324 clr R3
0788 322C mov R3,R2
078A 2224 clr R2
078C 4424 clr R4
078E 37FC sbrc R3,7
0790 4094 com R4
0792 5524 clr R5
0794 47FC sbrc R4,7
0796 5094 com R5
0798 80900600 lds R8,_UNICODE_point+2
079C 90900700 lds R9,_UNICODE_point+2+1
07A0 60900400 lds R6,_UNICODE_point
07A4 70900500 lds R7,_UNICODE_point+1
07A8 620C add R6,R2
07AA 731C adc R7,R3
07AC 841C adc R8,R4
07AE 951C adc R9,R5
07B0 8301 movw R16,R6
07B2 9401 movw R18,R8
07B4 0E940000 xcall _SD_read_sector2
07B8 .dbline 167
07B8 ; for(Read_number=0;Read_number<128;Read_number++)
07B8 0024 clr R0
07BA 1124 clr R1
07BC 1986 std y+9,R1
07BE 0886 std y+8,R0
07C0 58C0 xjmp L148
07C2 L145:
07C2 .dbline 168
07C2 ; {
07C2 .dbline 169
07C2 ; if((buffer[Read_number<<1]==buffer[300+j*2])&(buffer[(Read_number<<1)+1]==buffer[300+j*2+1]))
07C2 82E0 ldi R24,2
07C4 0A84 ldd R0,y+10
07C6 809D mul R24,R0
07C8 F001 movw R30,R0
07CA 80E0 ldi R24,<_buffer+300
07CC 90E0 ldi R25,>_buffer+300
07CE E80F add R30,R24
07D0 F91F adc R31,R25
07D2 2080 ldd R2,z+0
07D4 80E0 ldi R24,<_buffer
07D6 90E0 ldi R25,>_buffer
07D8 E885 ldd R30,y+8
07DA F985 ldd R31,y+9
07DC EE0F lsl R30
07DE FF1F rol R31
07E0 E80F add R30,R24
07E2 F91F adc R31,R25
07E4 3080 ldd R3,z+0
07E6 3214 cp R3,R2
07E8 21F4 brne L153
07EA 81E0 ldi R24,1
07EC 90E0 ldi R25,0
07EE 6C01 movw R12,R24
07F0 02C0 xjmp L154
07F2 L153:
07F2 CC24 clr R12
07F4 DD24 clr R13
07F6 L154:
07F6 82E0 ldi R24,2
07F8 0A84 ldd R0,y+10
07FA 809D mul R24,R0
07FC F001 movw R30,R0
07FE 80E0 ldi R24,<_buffer+301
0800 90E0 ldi R25,>_buffer+301
0802 E80F add R30,R24
0804 F91F adc R31,R25
0806 2080 ldd R2,z+0
0808 80E0 ldi R24,<_buffer
080A 90E0 ldi R25,>_buffer
080C E885 ldd R30,y+8
080E F985 ldd R31,y+9
0810 EE0F lsl R30
0812 FF1F rol R31
0814 3196 adiw R30,1
0816 E80F add R30,R24
0818 F91F adc R31,R25
081A 3080 ldd R3,z+0
081C 3214 cp R3,R2
081E 21F4 brne L155
0820 81E0 ldi R24,1
0822 90E0 ldi R25,0
0824 5C01 movw R10,R24
0826 02C0 xjmp L156
0828 L155:
0828 AA24 clr R10
082A BB24 clr R11
082C L156:
082C 1601 movw R2,R12
082E 2A20 and R2,R10
0830 3B20 and R3,R11
0832 2220 tst R2
0834 11F4 brne X8
0836 3320 tst R3
0838 B9F0 breq L149
083A X8:
083A .dbline 170
083A ; {
083A .dbline 171
083A ; mp3_info.NAME[j]=Read_number+((int)i<<7);
083A 27E0 ldi R18,7
083C 30E0 ldi R19,0
083E 0B85 ldd R16,y+11
0840 1127 clr R17
0842 0E940000 xcall lsl16
0846 4884 ldd R4,y+8
0848 5984 ldd R5,y+9
084A 400E add R4,R16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -