📄 fat.lst
字号:
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 + -