📄 fat16.lis
字号:
03C8 L52:
03C8 .dbline 190
03C8 C701 movw R24,R14
03CA 0196 adiw R24,1
03CC 7C01 movw R14,R24
03CE L54:
03CE .dbline 190
03CE C701 movw R24,R14
03D0 8031 cpi R24,16
03D2 E0E0 ldi R30,0
03D4 9E07 cpc R25,R30
03D6 B0F2 brlo L51
03D8 .dbline 198
03D8 L48:
03D8 .dbline 187
03D8 C501 movw R24,R10
03DA 0196 adiw R24,1
03DC 5C01 movw R10,R24
03DE L50:
03DE .dbline 187
03DE A616 cp R10,R22
03E0 B706 cpc R11,R23
03E2 08F4 brsh X1
03E4 C4CF rjmp L47
03E6 X1:
03E6 .dbline 199
03E6 ; }
03E6 ; }
03E6 ; }
03E6 ; return 0; //没有找到对应的目录项,返回0
03E6 0027 clr R16
03E8 .dbline -2
03E8 L46:
03E8 2196 adiw R28,1
03EA 00D0 rcall pop_gset5
03EC 2496 adiw R28,4
03EE .dbline 0 ; func end
03EE 0895 ret
03F0 .dbsym r DirStart 20 i
03F0 .dbsym r DirSecCut 22 i
03F0 .dbsym r i 10 i
03F0 .dbsym r m 14 i
03F0 .dbsym r ID 12 pS[.3]
03F0 .dbsym l Name 11 pc
03F0 .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\ICCFIL~1\五键MP3ICC\fat16.c
0000 L58:
0000 .blkb 2
0002 L59:
0002 .blkb 2
0004 L60:
0004 .blkb 2
.area data(ram, con, rel)
002A .dbfile D:\ICCFIL~1\五键MP3ICC\fat16.c
002A L61:
002A .blkb 2
.area idata
002A 0000 .word 0
.area data(ram, con, rel)
002C .dbfile D:\ICCFIL~1\五键MP3ICC\fat16.c
.area bss(ram, con, rel)
0006 .dbfile D:\ICCFIL~1\五键MP3ICC\fat16.c
0006 L62:
0006 .blkb 2
0008 L63:
0008 .blkb 11
0013 L64:
0013 .blkb 1
.area data(ram, con, rel)
002C .dbfile D:\ICCFIL~1\五键MP3ICC\fat16.c
002C L65:
002C .blkb 1
.area idata
002C 00 .byte 0
.area data(ram, con, rel)
002D .dbfile D:\ICCFIL~1\五键MP3ICC\fat16.c
.area text(rom, con, rel)
03F0 .dbfile D:\ICCFIL~1\五键MP3ICC\fat16.c
03F0 .dbfunc e Readfile _Readfile fc
03F0 .dbsym s j L65 c
03F0 .dbsym s i L64 c
03F0 .dbsym s filename L63 A[11:11]c
03F0 .dbsym s m L62 i
03F0 .dbsym s pointer L61 i
03F0 .dbsym s p L60 i
03F0 .dbsym s t L59 i
03F0 .dbsym s r L58 i
03F0 ; DirStart -> <dead>
03F0 ; lenth -> y+21
03F0 ; count -> R10,R11
03F0 ; BytePerClus -> R10,R11
03F0 ; ClusNum -> R12,R13
03F0 ; unicodename -> y+5
03F0 ; NextClus -> R10,R11
03F0 ; LBA -> y+1
.even
03F0 _Readfile::
03F0 00D0 rcall push_gset4
03F2 6997 sbiw R28,25
03F4 .dbline -1
03F4 .dbline 202
03F4 ; }
03F4 ; static uint8 Readfile()
03F4 ; {
03F4 .dbline 206
03F4 ; static uint16 r,t,p,pointer=0,m;
03F4 ; static uint8 filename[11],i,j=0;
03F4 ; uint8 unicodename[16];
03F4 ; uint16 BytePerClus, ClusNum,NextClus,count=0,DirStart;
03F4 AA24 clr R10
03F6 BB24 clr R11
03F8 .dbline 208
03F8 ; uint32 LBA,lenth;
03F8 ; if(fileid.FileName[7]==0x31)
03F8 80913500 lds R24,_fileid+7
03FC 8133 cpi R24,49
03FE 09F0 breq X2
0400 C6C0 rjmp L66
0402 X2:
0402 .dbline 209
0402 ; {
0402 .dbline 210
0402 ; t=0;
0402 2224 clr R2
0404 3324 clr R3
0406 30920300 sts L59+1,R3
040A 20920200 sts L59,R2
040E .dbline 211
040E ; longfileflag=1;
040E 81E0 ldi R24,1
0410 80930600 sts _longfileflag,R24
0414 .dbline 212
0414 ; count=fileindex-1;
0414 80910200 lds R24,_fileindex
0418 90910300 lds R25,_fileindex+1
041C 0197 sbiw R24,1
041E 5C01 movw R10,R24
0420 .dbline 213
0420 ; m=count%16;
0420 8F70 andi R24,15
0422 9070 andi R25,0
0424 90930700 sts L62+1,R25
0428 80930600 sts L62,R24
042C .dbline 214
042C ; m<<=5;
042C 25E0 ldi R18,5
042E 30E0 ldi R19,0
0430 8C01 movw R16,R24
0432 00D0 rcall lsl16
0434 10930700 sts L62+1,R17
0438 00930600 sts L62,R16
043C .dbline 215
043C ; for(i=0;i<16;i++)
043C 2224 clr R2
043E 20921300 sts L64,R2
0442 6BC0 rjmp L72
0444 L69:
0444 .dbline 216
0444 ; {
0444 .dbline 217
0444 ; if(i<10)unicodename[i]=BUFFER[m+i+1];
0444 80911300 lds R24,L64
0448 8A30 cpi R24,10
044A B8F4 brsh L73
044C .dbline 217
044C 282E mov R2,R24
044E 3324 clr R3
0450 E0910600 lds R30,L62
0454 F0910700 lds R31,L62+1
0458 E20D add R30,R2
045A F31D adc R31,R3
045C 3196 adiw R30,1
045E 80E0 ldi R24,<_BUFFER
0460 90E0 ldi R25,>_BUFFER
0462 E80F add R30,R24
0464 F91F adc R31,R25
0466 2080 ldd R2,z+0
0468 CE01 movw R24,R28
046A 0596 adiw R24,5
046C E0911300 lds R30,L64
0470 FF27 clr R31
0472 E80F add R30,R24
0474 F91F adc R31,R25
0476 2082 std z+0,R2
0478 17C0 rjmp L74
047A L73:
047A .dbline 218
047A ; else unicodename[i]=BUFFER[m+i+4];
047A 20901300 lds R2,L64
047E 3324 clr R3
0480 E0910600 lds R30,L62
0484 F0910700 lds R31,L62+1
0488 E20D add R30,R2
048A F31D adc R31,R3
048C 3496 adiw R30,4
048E 80E0 ldi R24,<_BUFFER
0490 90E0 ldi R25,>_BUFFER
0492 E80F add R30,R24
0494 F91F adc R31,R25
0496 2080 ldd R2,z+0
0498 CE01 movw R24,R28
049A 0596 adiw R24,5
049C E0911300 lds R30,L64
04A0 FF27 clr R31
04A2 E80F add R30,R24
04A4 F91F adc R31,R25
04A6 2082 std z+0,R2
04A8 L74:
04A8 .dbline 219
04A8 ; if((BUFFER[m+1+i]==0x2E)&&(BUFFER[m+2+i]==0))
04A8 20901300 lds R2,L64
04AC 3324 clr R3
04AE E0910600 lds R30,L62
04B2 F0910700 lds R31,L62+1
04B6 3196 adiw R30,1
04B8 E20D add R30,R2
04BA F31D adc R31,R3
04BC 80E0 ldi R24,<_BUFFER
04BE 90E0 ldi R25,>_BUFFER
04C0 E80F add R30,R24
04C2 F91F adc R31,R25
04C4 8081 ldd R24,z+0
04C6 8E32 cpi R24,46
04C8 19F5 brne L75
04CA E0910600 lds R30,L62
04CE F0910700 lds R31,L62+1
04D2 3296 adiw R30,2
04D4 E20D add R30,R2
04D6 F31D adc R31,R3
04D8 80E0 ldi R24,<_BUFFER
04DA 90E0 ldi R25,>_BUFFER
04DC E80F add R30,R24
04DE F91F adc R31,R25
04E0 2080 ldd R2,z+0
04E2 2220 tst R2
04E4 A9F4 brne L75
04E6 .dbline 220
04E6 ; {
04E6 0FC0 rjmp L78
04E8 L77:
04E8 .dbline 222
04E8 .dbline 223
04E8 20901300 lds R2,L64
04EC 3324 clr R3
04EE 822D mov R24,R2
04F0 8F5F subi R24,255 ; addi 1
04F2 80931300 sts L64,R24
04F6 CE01 movw R24,R28
04F8 0596 adiw R24,5
04FA E22D mov R30,R2
04FC FF27 clr R31
04FE E80F add R30,R24
0500 F91F adc R31,R25
0502 2224 clr R2
0504 2082 std z+0,R2
0506 .dbline 224
0506 L78:
0506 .dbline 221
0506 ; while(i<16)
0506 80911300 lds R24,L64
050A 8031 cpi R24,16
050C 68F3 brlo L77
050E .dbline 225
050E ; {
050E ; unicodename[i++]=0;
050E ; }
050E ; break;
050E 0AC0 rjmp L71
0510 L75:
0510 .dbline 227
0510 L70:
0510 .dbline 215
0510 80911300 lds R24,L64
0514 8F5F subi R24,255 ; addi 1
0516 80931300 sts L64,R24
051A L72:
051A .dbline 215
051A 80911300 lds R24,L64
051E 8031 cpi R24,16
0520 08F4 brsh X3
0522 90CF rjmp L69
0524 X3:
0524 L71:
0524 .dbline 228
0524 ; }
0524 ; }
0524 ; for(i=0;i<16;i+=2)
0524 2224 clr R2
0526 20921300 sts L64,R2
052A 2CC0 rjmp L83
052C L80:
052C .dbline 229
052C ; {
052C .dbline 230
052C ; if(i<8)
052C 80911300 lds R24,L64
0530 8830 cpi R24,8
0532 68F4 brsh L84
0534 .dbline 231
0534 ; {
0534 .dbline 232
0534 ; show(unicodename+i,(uint8)t,0);
0534 2224 clr R2
0536 2882 std y+0,R2
0538 20910200 lds R18,L59
053C CE01 movw R24,R28
053E 0596 adiw R24,5
0540 00911300 lds R16,L64
0544 1127 clr R17
0546 080F add R16,R24
0548 191F adc R17,R25
054A 46D2 rcall _show
054C .dbline 233
054C ; }
054C 0DC0 rjmp L85
054E L84:
054E .dbline 235
054E ; else
054E ; {
054E .dbline 236
054E ; show(unicodename+i,(uint8)t-60,1);
054E 81E0 ldi R24,1
0550 8883 std y+0,R24
0552 20910200 lds R18,L59
0556 2C53 subi R18,60
0558 CE01 movw R24,R28
055A 0596 adiw R24,5
055C 00911300 lds R16,L64
0560 1127 clr R17
0562 080F add R16,R24
0564 191F adc R17,R25
0566 38D2 rcall _show
0568 .dbline 237
0568 ; }
0568 L85:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -