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

📄 fat.lis

📁 M16-Mp3.rar
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0656 7724              clr R7
 0658 8824              clr R8
 065A 9924              clr R9
 065C 2628              or R2,R6
 065E 3728              or R3,R7
 0660 4828              or R4,R8
 0662 5928              or R5,R9
 0664 4BE1              ldi R20,27
 0666 50E0              ldi R21,0
 0668 60E0              ldi R22,0
 066A 70E0              ldi R23,0
 066C 6A80              ldd R6,y+2
 066E 7B80              ldd R7,y+3
 0670 8C80              ldd R8,y+4
 0672 9D80              ldd R9,y+5
 0674 640E              add R6,R20
 0676 751E              adc R7,R21
 0678 861E              adc R8,R22
 067A 971E              adc R9,R23
 067C F301              movw R30,R6
 067E E80F              add R30,R24
 0680 F91F              adc R31,R25
 0682 6080              ldd R6,z+0
 0684 7724              clr R7
 0686 762C              mov R7,R6
 0688 6624              clr R6
 068A 8824              clr R8
 068C 77FC              sbrc R7,7
 068E 8094              com R8
 0690 9924              clr R9
 0692 87FC              sbrc R8,7
 0694 9094              com R9
 0696 2628              or R2,R6
 0698 3728              or R3,R7
 069A 4828              or R4,R8
 069C 5928              or R5,R9
 069E 30924800          sts _SearchFile_Clust+1,R3
 06A2 20924700          sts _SearchFile_Clust,R2
 06A6 50924A00          sts _SearchFile_Clust+2+1,R5
 06AA 40924900          sts _SearchFile_Clust+2,R4
 06AE                   .dbline 154
 06AE           ;                                         Index_tmp++;
 06AE 41E0              ldi R20,1
 06B0 50E0              ldi R21,0
 06B2 60E0              ldi R22,0
 06B4 70E0              ldi R23,0
 06B6 2E80              ldd R2,y+6
 06B8 3F80              ldd R3,y+7
 06BA 4884              ldd R4,y+8
 06BC 5984              ldd R5,y+9
 06BE 240E              add R2,R20
 06C0 351E              adc R3,R21
 06C2 461E              adc R4,R22
 06C4 571E              adc R5,R23
 06C6 2E82              std y+6,R2
 06C8 3F82              std y+7,R3
 06CA 4886              std y+8,R4
 06CC 5986              std y+9,R5
 06CE                   .dbline 155
 06CE           ;                                         break;
 06CE 23C0              xjmp L68
 06D0           L77:
 06D0                   .dbline 157
 06D0           ;                                 }
 06D0           ;                       }
 06D0           L71:
 06D0                   .dbline 158
 06D0           ;               }
 06D0                   .dbline 160
 06D0           ; 
 06D0           ;               Index_tmp++;
 06D0 41E0              ldi R20,1
 06D2 50E0              ldi R21,0
 06D4 60E0              ldi R22,0
 06D6 70E0              ldi R23,0
 06D8 2E80              ldd R2,y+6
 06DA 3F80              ldd R3,y+7
 06DC 4884              ldd R4,y+8
 06DE 5984              ldd R5,y+9
 06E0 240E              add R2,R20
 06E2 351E              adc R3,R21
 06E4 461E              adc R4,R22
 06E6 571E              adc R5,R23
 06E8 2E82              std y+6,R2
 06EA 3F82              std y+7,R3
 06EC 4886              std y+8,R4
 06EE 5986              std y+9,R5
 06F0                   .dbline 162
 06F0           ;               
 06F0           ;               if(Fat_Buffer[tem] == 0)                                                                // 等所有文件都已经查询完了   
 06F0 80E0              ldi R24,<_Fat_Buffer
 06F2 90E0              ldi R25,>_Fat_Buffer
 06F4 EA81              ldd R30,y+2
 06F6 FB81              ldd R31,y+3
 06F8 E80F              add R30,R24
 06FA F91F              adc R31,R25
 06FC 2080              ldd R2,z+0
 06FE 2220              tst R2
 0700 49F4              brne L79
 0702           X11:
 0702                   .dbline 163
 0702           ;               {
 0702                   .dbline 164
 0702           ;               Index_tmp=0;
 0702 40E0              ldi R20,0
 0704 50E0              ldi R21,0
 0706 60E0              ldi R22,0
 0708 70E0              ldi R23,0
 070A 4E83              std y+6,R20
 070C 5F83              std y+7,R21
 070E 6887              std y+8,R22
 0710 7987              std y+9,R23
 0712                   .dbline 165
 0712           ;               break;
 0712 01C0              xjmp L68
 0714           L79:
 0714                   .dbline 167
 0714           ;       }       
 0714           ;       }
 0714           L67:
 0714                   .dbline 168
 0714           ;       while(1);
 0714 CACE              xjmp L66
 0716           L68:
 0716                   .dbline -2
 0716           L65:
 0716                   .dbline 0 ; func end
 0716 2A96              adiw R28,10
 0718 0E940000          xcall pop_xgsetF00C
 071C 2496              adiw R28,4
 071E 0895              ret
 0720                   .dbsym l Index_tmp 6 l
 0720                   .dbsym l tem 2 l
 0720                   .dbsym r i 10 c
 0720                   .dbsym l File_Name 20 pc
 0720                   .dbsym l TargetStartSector 16 l
 0720                   .dbend
 0720                   .dbfunc e SearchFileOfExt _SearchFileOfExt fV
 0720           ;            tem -> y+2
 0720           ;              i -> R10
 0720           ;            Ext -> y+16
 0720           ; TargetStartSector -> y+12
                        .even
 0720           _SearchFileOfExt::
 0720 0E940000          xcall push_arg4
 0724 0E940000          xcall push_xgsetF00C
 0728 2697              sbiw R28,6
 072A                   .dbline -1
 072A                   .dbline 173
 072A           ; } 
 072A           ; 
 072A           ; 
 072A           ; void SearchFileOfExt(uint32 TargetStartSector,uint8*Ext)
 072A           ; {
 072A           L82:
 072A                   .dbline 176
 072A           ;     uint8     i;
 072A           ;     uint32    tem;        
 072A           ;       do{
 072A                   .dbline 177
 072A           ;       SD_ReadBlock(TargetStartSector + Index/(BPB_BytesPerSec/32),Fat_Buffer);        // 重新读取目录表
 072A 80E0              ldi R24,<_Fat_Buffer
 072C 90E0              ldi R25,>_Fat_Buffer
 072E 9983              std y+1,R25
 0730 8883              std y+0,R24
 0732 25E0              ldi R18,5
 0734 30E0              ldi R19,0
 0736 00913900          lds R16,_BPB_BytesPerSec
 073A 10913A00          lds R17,_BPB_BytesPerSec+1
 073E 0E940000          xcall lsr16
 0742 1801              movw R2,R16
 0744 4424              clr R4
 0746 5524              clr R5
 0748 2091F202          lds R18,_Index+2
 074C 3091F302          lds R19,_Index+2+1
 0750 0091F002          lds R16,_Index
 0754 1091F102          lds R17,_Index+1
 0758 5A92              st -y,R5
 075A 4A92              st -y,R4
 075C 3A92              st -y,R3
 075E 2A92              st -y,R2
 0760 0E940000          xcall div32u
 0764 1801              movw R2,R16
 0766 2901              movw R4,R18
 0768 0C85              ldd R16,y+12
 076A 1D85              ldd R17,y+13
 076C 2E85              ldd R18,y+14
 076E 3F85              ldd R19,y+15
 0770 020D              add R16,R2
 0772 131D              adc R17,R3
 0774 241D              adc R18,R4
 0776 351D              adc R19,R5
 0778 0E940000          xcall _SD_ReadBlock
 077C                   .dbline 179
 077C           ; 
 077C           ;       tem=((Index)*0x20)%BPB_BytesPerSec;
 077C 4090F202          lds R4,_Index+2
 0780 5090F302          lds R5,_Index+2+1
 0784 2090F002          lds R2,_Index
 0788 3090F102          lds R3,_Index+1
 078C 40E2              ldi R20,32
 078E 50E0              ldi R21,0
 0790 60E0              ldi R22,0
 0792 70E0              ldi R23,0
 0794 5A92              st -y,R5
 0796 4A92              st -y,R4
 0798 3A92              st -y,R3
 079A 2A92              st -y,R2
 079C 8A01              movw R16,R20
 079E 9B01              movw R18,R22
 07A0 0E940000          xcall empy32u
 07A4 20903900          lds R2,_BPB_BytesPerSec
 07A8 30903A00          lds R3,_BPB_BytesPerSec+1
 07AC 4424              clr R4
 07AE 5524              clr R5
 07B0 5A92              st -y,R5
 07B2 4A92              st -y,R4
 07B4 3A92              st -y,R3
 07B6 2A92              st -y,R2
 07B8 0E940000          xcall mod32u
 07BC 0A83              std y+2,R16
 07BE 1B83              std y+3,R17
 07C0 2C83              std y+4,R18
 07C2 3D83              std y+5,R19
 07C4                   .dbline 181
 07C4           ;     
 07C4           ;       if((Fat_Buffer[tem+11] & ATTR_LONG_FILENAME) != ATTR_LONG_FILENAME);    // 是否是长文件名
 07C4 4BE0              ldi R20,11
 07C6 50E0              ldi R21,0
 07C8 60E0              ldi R22,0
 07CA 70E0              ldi R23,0
 07CC 2A80              ldd R2,y+2
 07CE 3B80              ldd R3,y+3
 07D0 4C80              ldd R4,y+4
 07D2 5D80              ldd R5,y+5
 07D4 240E              add R2,R20
 07D6 351E              adc R3,R21
 07D8 461E              adc R4,R22
 07DA 571E              adc R5,R23
 07DC F101              movw R30,R2
 07DE 80E0              ldi R24,<_Fat_Buffer
 07E0 90E0              ldi R25,>_Fat_Buffer
 07E2 E80F              add R30,R24
 07E4 F91F              adc R31,R25
 07E6 8081              ldd R24,z+0
 07E8 8F70              andi R24,15
 07EA 8F30              cpi R24,15
 07EC 01F0              breq L85
 07EE           X15:
 07EE                   .dbline 181
 07EE           L85:
 07EE                   .dbline 182
 07EE           ;       {
 07EE                   .dbline 183
 07EE           ;               if((Fat_Buffer[tem] != 0xe5) && (Fat_Buffer[tem] != 0x05))                         //文件没有删除   
 07EE 80E0              ldi R24,<_Fat_Buffer
 07F0 90E0              ldi R25,>_Fat_Buffer
 07F2 EA81              ldd R30,y+2
 07F4 FB81              ldd R31,y+3
 07F6 E80F              add R30,R24
 07F8 F91F              adc R31,R25
 07FA 2080              ldd R2,z+0
 07FC 3324              clr R3
 07FE 822D              mov R24,R2
 0800 853E              cpi R24,229
 0802 09F4              brne X23
 0804 5CC1              xjmp L87
 0806           X23:
 0806           X16:
 0806 8530              cpi R24,5
 0808 09F4              brne X24
 080A 59C1              xjmp L87
 080C           X24:
 080C           X17:
 080C                   .dbline 184
 080C           ;               {
 080C                   .dbline 185
 080C           ;               if((Fat_Buffer[tem+11]&ATTR_DIRECTORY) != ATTR_DIRECTORY)    // is it a directory ?
 080C 4BE0              ldi R20,11
 080E 50E0              ldi R21,0
 0810 60E0              ldi R22,0
 0812 70E0              ldi R23,0
 0814 2A80              ldd R2,y+2
 0816 3B80              ldd R3,y+3
 0818 4C80              ldd R4,y+4
 081A 5D80              ldd R5,y+5
 081C 240E              add R2,R20
 081E 351E              adc R3,R21
 0820 461E              adc R4,R22
 0822 571E              adc R5,R23
 0824 F101              movw R30,R2
 0826 80E0              ldi R24,<_Fat_Buffer
 0828 90E0              ldi R25,>_Fat_Buffer
 082A E80F              add R30,R24
 082C F91F              adc R31,R25
 082E 8081              ldd R24,z+0
 0830 8071              andi R24,16
 0832 8031              cpi R24,16
 0834 09F4              brne X25
 0836 43C1              xjmp L89
 0838           X25:
 0838           X18:
 0838                   .dbline 186
 0838           ;                 {     
 0838                   .dbline 187
 0838           ;                           for(i=0;i<8;i++)
 0838 AA24              clr R10
 083A 1AC0              xjmp L94
 083C           L91:
 083C                   .dbline 188
 083C           ;                               {
 083C                   .dbline 189
 083C           ;                                               deName[i]=Fat_Buffer[tem+i];
 083C 2A2C              mov R2,R10
 083E 3324              clr R3
 0840 4424              clr R4
 0842 5524              clr R5
 0844 6A80              ldd R6,y+2
 0846 7B80              ldd R7,y+3
 0848 8C80              ldd R8,y+4
 084A 9D80              ldd R9,y+5
 084C 620C              add R6,R2
 084E 731C              adc R7,R3
 0850 841C              adc R8,R4
 0852 951C              adc R9,R5
 0854 F301              movw R30,R6
 0856 80E0              ldi R24,<_Fat_Buffer

⌨️ 快捷键说明

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