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

📄 fat.lst

📁 读写U盘C代码,基于CH375FAT芯片,实用的一个代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 273   2                      bXXGFlags.bits.bFatChanged=1;
 274   2                 }    
 275   1              return clusterNum;
 276   1      }
 277          
 278          void UpdateFat(unsigned long sectorNum)
 279          {
 280   1      
 281   1              if(bXXGFlags.bits.bFatChanged==1)
 282   1                              {
 283   2                              if(!RBC_Write(sectorNum,1,CurFatSector))
 284   2                                      return ;
 285   2                              //DelayMs(10);
 286   2                              if(!RBC_Write(sectorNum+DeviceInfo.BPB_FATSz16,1,CurFatSector))
 287   2                                      return ;
 288   2                              bXXGFlags.bits.bFatChanged=0;
 289   2                              }
 290   1      }
 291          
C51 COMPILER V7.06   FAT                                                                   11/22/2004 22:08:31 PAGE 6   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _FirstSectorofCluster (BEGIN)
                                           ; SOURCE LINE # 12
;---- Variable 'clusterNum' assigned to Register 'R6/R7' ----
                                           ; SOURCE LINE # 13
                                           ; SOURCE LINE # 15
0000 EF                MOV     A,R7
0001 24FE              ADD     A,#0FEH
0003 FF                MOV     R7,A
0004 EE                MOV     A,R6
0005 34FF              ADDC    A,#0FFH
0007 FE                MOV     R6,A
0008 E4                CLR     A
0009 8F00        R     MOV     temp+03H,R7
000B 8E00        R     MOV     temp+02H,R6
000D F500        R     MOV     temp+01H,A
000F F500        R     MOV     temp,A
                                           ; SOURCE LINE # 16
0011 900000      E     MOV     DPTR,#DeviceInfo+0AH
0014 E0                MOVX    A,@DPTR
0015 FF                MOV     R7,A
0016 E4                CLR     A
0017 FC                MOV     R4,A
0018 FD                MOV     R5,A
0019 FE                MOV     R6,A
001A AB00        R     MOV     R3,temp+03H
001C AA00        R     MOV     R2,temp+02H
001E A900        R     MOV     R1,temp+01H
0020 A800        R     MOV     R0,temp
0022 120000      E     LCALL   ?C?LMUL
0025 8F00        R     MOV     temp+03H,R7
0027 8E00        R     MOV     temp+02H,R6
0029 8D00        R     MOV     temp+01H,R5
002B 8C00        R     MOV     temp,R4
                                           ; SOURCE LINE # 17
002D 900000      E     MOV     DPTR,#DeviceInfo+040H
0030 E0                MOVX    A,@DPTR
0031 FC                MOV     R4,A
0032 A3                INC     DPTR
0033 E0                MOVX    A,@DPTR
0034 FD                MOV     R5,A
0035 A3                INC     DPTR
0036 E0                MOVX    A,@DPTR
0037 FE                MOV     R6,A
0038 A3                INC     DPTR
0039 E0                MOVX    A,@DPTR
003A 2500        R     ADD     A,temp+03H
003C F500        R     MOV     temp+03H,A
003E EE                MOV     A,R6
003F 3500        R     ADDC    A,temp+02H
0041 F500        R     MOV     temp+02H,A
0043 ED                MOV     A,R5
0044 3500        R     ADDC    A,temp+01H
0046 F500        R     MOV     temp+01H,A
0048 EC                MOV     A,R4
0049 3500        R     ADDC    A,temp
004B F500        R     MOV     temp,A
                                           ; SOURCE LINE # 18
004D AF00        R     MOV     R7,temp+03H
004F AE00        R     MOV     R6,temp+02H
C51 COMPILER V7.06   FAT                                                                   11/22/2004 22:08:31 PAGE 7   

0051 AD00        R     MOV     R5,temp+01H
0053 FC                MOV     R4,A
                                           ; SOURCE LINE # 19
0054         ?C0001:
0054 22                RET     
             ; FUNCTION _FirstSectorofCluster (END)

             ; FUNCTION _ThisFatSecNum (BEGIN)
                                           ; SOURCE LINE # 21
;---- Variable 'clusterNum' assigned to Register 'R6/R7' ----
                                           ; SOURCE LINE # 22
                                           ; SOURCE LINE # 24
0000 EF                MOV     A,R7
0001 25E0              ADD     A,ACC
0003 FF                MOV     R7,A
0004 EE                MOV     A,R6
0005 33                RLC     A
0006 FE                MOV     R6,A
;---- Variable 'temp' assigned to Register 'R6/R7' ----
                                           ; SOURCE LINE # 25
0007 900000      E     MOV     DPTR,#DeviceInfo+08H
000A E0                MOVX    A,@DPTR
000B FC                MOV     R4,A
000C A3                INC     DPTR
000D E0                MOVX    A,@DPTR
000E FD                MOV     R5,A
000F 120000      E     LCALL   ?C?UIDIV
                                           ; SOURCE LINE # 26
0012 900000      E     MOV     DPTR,#DeviceInfo+03AH
0015 E0                MOVX    A,@DPTR
0016 FC                MOV     R4,A
0017 A3                INC     DPTR
0018 E0                MOVX    A,@DPTR
0019 2F                ADD     A,R7
001A FF                MOV     R7,A
001B EC                MOV     A,R4
001C 3E                ADDC    A,R6
001D FE                MOV     R6,A
                                           ; SOURCE LINE # 27
                                           ; SOURCE LINE # 28
001E         ?C0002:
001E 22                RET     
             ; FUNCTION _ThisFatSecNum (END)

             ; FUNCTION _ThisFatEntOffset (BEGIN)
                                           ; SOURCE LINE # 30
;---- Variable 'clusterNum' assigned to Register 'R6/R7' ----
                                           ; SOURCE LINE # 31
                                           ; SOURCE LINE # 33
0000 EF                MOV     A,R7
0001 25E0              ADD     A,ACC
0003 FF                MOV     R7,A
0004 EE                MOV     A,R6
0005 33                RLC     A
;---- Variable 'temp1' assigned to Register 'R2/R3' ----
0006 AB07              MOV     R3,AR7
0008 FA                MOV     R2,A
                                           ; SOURCE LINE # 34
0009 900000      E     MOV     DPTR,#DeviceInfo+08H
000C E0                MOVX    A,@DPTR
000D FC                MOV     R4,A
000E A3                INC     DPTR
C51 COMPILER V7.06   FAT                                                                   11/22/2004 22:08:31 PAGE 8   

000F E0                MOVX    A,@DPTR
0010 FD                MOV     R5,A
0011 AE02              MOV     R6,AR2
0013 120000      E     LCALL   ?C?UIDIV
;---- Variable 'temp2' assigned to Register 'R6/R7' ----
                                           ; SOURCE LINE # 35
0016 900000      E     MOV     DPTR,#DeviceInfo+08H
0019 E0                MOVX    A,@DPTR
001A FC                MOV     R4,A
001B A3                INC     DPTR
001C E0                MOVX    A,@DPTR
001D FD                MOV     R5,A
001E 120000      E     LCALL   ?C?IMUL
0021 C3                CLR     C
0022 EB                MOV     A,R3
0023 9F                SUBB    A,R7
0024 FB                MOV     R3,A
0025 EA                MOV     A,R2
0026 9E                SUBB    A,R6
                                           ; SOURCE LINE # 36
0027 FE                MOV     R6,A
0028 AF03              MOV     R7,AR3
                                           ; SOURCE LINE # 37
002A         ?C0003:
002A 22                RET     
             ; FUNCTION _ThisFatEntOffset (END)

             ; FUNCTION _GetNextClusterNum (BEGIN)
                                           ; SOURCE LINE # 39
0000 8E00        R     MOV     clusterNum,R6
0002 8F00        R     MOV     clusterNum+01H,R7
                                           ; SOURCE LINE # 40
                                           ; SOURCE LINE # 43
0004 120000      R     LCALL   _ThisFatSecNum
0007 8E00        R     MOV     xxgFatSecNum,R6
0009 8F00        R     MOV     xxgFatSecNum+01H,R7
                                           ; SOURCE LINE # 44
000B AF00        R     MOV     R7,clusterNum+01H
000D AE00        R     MOV     R6,clusterNum
000F 120000      R     LCALL   _ThisFatEntOffset
0012 8E00        R     MOV     xxgFatEntOffset,R6
0014 8F00        R     MOV     xxgFatEntOffset+01H,R7
                                           ; SOURCE LINE # 46
0016 900000      E     MOV     DPTR,#ThisFile+014H
0019 E0                MOVX    A,@DPTR
001A 6500        R     XRL     A,xxgFatSecNum
001C 7004              JNZ     ?C0047
001E A3                INC     DPTR
001F E0                MOVX    A,@DPTR
0020 6500        R     XRL     A,xxgFatSecNum+01H
0022         ?C0047:
0022 6028              JZ      ?C0004
                                           ; SOURCE LINE # 47
                                           ; SOURCE LINE # 49
0024 AE00        R     MOV     R6,xxgFatSecNum
0026 AF00        R     MOV     R7,xxgFatSecNum+01H
0028 E4                CLR     A
0029 FC                MOV     R4,A
002A FD                MOV     R5,A
002B 750001      E     MOV     ?_RBC_Read?BYTE+04H,#01H
002E 750001      E     MOV     ?_RBC_Read?BYTE+05H,#01H
0031 750000      R     MOV     ?_RBC_Read?BYTE+06H,#HIGH FATBUF
C51 COMPILER V7.06   FAT                                                                   11/22/2004 22:08:31 PAGE 9   

0034 750000      R     MOV     ?_RBC_Read?BYTE+07H,#LOW FATBUF
0037 120000      E     LCALL   _RBC_Read
003A EF                MOV     A,R7
003B 7005              JNZ     ?C0005
                                           ; SOURCE LINE # 50
003D 7EFF              MOV     R6,#0FFH
003F 7FFF              MOV     R7,#0FFH
0041 22                RET     
0042         ?C0005:
                                           ; SOURCE LINE # 51
0042 900000      E     MOV     DPTR,#ThisFile+014H
0045 E500        R     MOV     A,xxgFatSecNum
0047 F0                MOVX    @DPTR,A
0048 A3                INC     DPTR
0049 E500        R     MOV     A,xxgFatSecNum+01H
004B F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 52
004C         ?C0004:
                                           ; SOURCE LINE # 55
004C 7400        R     MOV     A,#LOW FATBUF+01H
004E 2500        R     ADD     A,xxgFatEntOffset+01H
0050 F582              MOV     DPL,A
0052 7400        R     MOV     A,#HIGH FATBUF+01H
0054 3500        R     ADDC    A,xxgFatEntOffset
0056 F583              MOV     DPH,A
0058 E0                MOVX    A,@DPTR
0059 750000      R     MOV     clusterNum,#00H
005C F500        R     MOV     clusterNum+01H,A
                                           ; SOURCE LINE # 56
005E 750000      R     MOV     clusterNum+01H,#00H
0061 F500        R     MOV     clusterNum,A
                                           ; SOURCE LINE # 57
0063 7400        R     MOV     A,#LOW FATBUF
0065 2500        R     ADD     A,xxgFatEntOffset+01H
0067 F582              MOV     DPL,A
0069 7400        R     MOV     A,#HIGH FATBUF
006B 3500        R     ADDC    A,xxgFatEntOffset
006D F583              MOV     DPH,A
006F E0                MOVX    A,@DPTR
0070 2500        R     ADD     A,clusterNum+01H
0072 F500        R     MOV     clusterNum+01H,A
0074 E4                CLR     A
0075 3500        R     ADDC    A,clusterNum
0077 F500        R     MOV     clusterNum,A
                                           ; SOURCE LINE # 58
0079 FE                MOV     R6,A
007A AF00        R     MOV     R7,clusterNum+01H
                                           ; SOURCE LINE # 59
007C         ?C0006:
007C 22                RET     
             ; FUNCTION _GetNextClusterNum (END)

             ; FUNCTION _DeleteClusterLink (BEGIN)
                                           ; SOURCE LINE # 61
0000 8E00        R     MOV     clusterNum,R6
0002 8F00        R     MOV     clusterNum+01H,R7
                                           ; SOURCE LINE # 62
0004         ?C0007:
                                           ; SOURCE LINE # 68
0004 D3                SETB    C
0005 E500        R     MOV     A,clusterNum+01H
0007 9401              SUBB    A,#01H
C51 COMPILER V7.06   FAT                                                                   11/22/2004 22:08:31 PAGE 10  

0009 E500        R     MOV     A,clusterNum
000B 9400              SUBB    A,#00H
000D 5003              JNC     $ + 5H
000F 020000      R     LJMP    ?C0008
0012 E500        R     MOV     A,clusterNum+01H
0014 94F0              SUBB    A,#0F0H
0016 E500        R     MOV     A,clusterNum
0018 94FF              SUBB    A,#0FFH
001A 4003              JC      $ + 5H
001C 020000      R     LJMP    ?C0008
                                           ; SOURCE LINE # 69
                                           ; SOURCE LINE # 70

⌨️ 快捷键说明

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