📄 dir.lst
字号:
0000007E 7800 LDRB R0,[R0,#0x0] ; c
00000080 4288 CMP R0,R1
00000082 D3C9 BCC L_32 ; T=0x00000018
239: part_relSect(fs->part,buf);
00000084 1C20 MOV R0,R4 ; fs
00000086 6800 LDR R0,[R0,#0x0] ; fs
00000088 9901 LDR R1,[R13,#0x4] ; buf
0000008A F7FF BL part_relSect?T ; T=0x0001 (1)
0000008C FFB9 BL part_relSect?T ; T=0x0001 (2)
240: return(0);
0000008E 2000 MOV R0,#0x0
00000090 ; SCOPE-END
241: }
00000090 L_36:
00000090 B003 ADD R13,#0xC
00000092 BCF0 POP {R4-R7}
ARM COMPILER V2.42, dir 27/03/06 10:45:48 PAGE 17
00000094 BC08 POP {R3}
00000096 4718 BX R3
00000098 ENDP ; 'dir_findinCluster?T'
*** CODE SEGMENT '?PR?dir_findinDir?T?dir':
249: euint32 dir_findinDir(FileSystem *fs, eint8* fatname,euint32 firstcluster, FileLocation *loc, euint8 mode)
00000000 B5F0 PUSH {R4-R7,LR}
00000002 1C1E MOV R6,R3 ; loc
00000004 ---- Variable 'loc' assigned to Register 'R6' ----
00000004 ---- Variable 'firstcluster' assigned to Register 'R2' ----
00000004 1C0D MOV R5,R1 ; fatname
00000006 ---- Variable 'fatname' assigned to Register 'R5' ----
00000006 1C04 MOV R4,R0 ; fs
00000008 ---- Variable 'fs' assigned to Register 'R4' ----
00000008 B087 SUB R13,#0x1C
250: {
0000000A ; SCOPE-START
251: euint32 c=0,cluster;
0000000A 2000 MOV R0,#0x0
0000000C 9000 STR R0,[R13,#0x0] ; c
254: Cache.DiscCluster = Cache.FirstCluster = firstcluster;
0000000E 1C10 MOV R0,R2 ; firstcluster
00000010 9004 STR R0,[R13,#0x10] ; Cache
00000012 9003 STR R0,[R13,#0xC] ; Cache
255: Cache.LogicCluster = Cache.LastCluster = Cache.Linear = 0;
00000014 2100 MOV R1,#0x0
00000016 A801 ADD R0,R13,#0x4
00000018 7001 STRB R1,[R0,#0x0] ; Cache
0000001A 2000 MOV R0,#0x0
0000001C 9005 STR R0,[R13,#0x14] ; Cache
0000001E 2000 MOV R0,#0x0
00000020 9002 STR R0,[R13,#0x8] ; Cache
257: if(firstcluster <= 1){
00000022 1C10 MOV R0,R2 ; firstcluster
00000024 2801 CMP R0,#0x1 ; firstcluster
00000026 D808 BHI L_42 ; T=0x0000003A
258: return(dir_findinRootArea(fs,fatname,loc,mode));
00000028 A807 ADD R0,R13,#0x1C
0000002A 7800 LDRB R0,[R0,#0x0] ; mode
0000002C 1C03 MOV R3,R0
0000002E 1C20 MOV R0,R4 ; fs
00000030 1C29 MOV R1,R5 ; fatname
00000032 1C32 MOV R2,R6 ; loc
00000034 F7FF BL dir_findinRootArea?T ; T=0x0001 (1)
00000036 FFE4 BL dir_findinRootArea?T ; T=0x0001 (2)
00000038 E01C B L_38 ; T=0x00000074
261: while(!fat_LogicToDiscCluster(fs,&Cache,c++)){
0000003A L_42:
0000003A E00E B L_39 ; T=0x0000005A
0000003C L_41:
262: if((cluster=dir_findinCluster(fs,Cache.DiscCluster,fatname,loc,mode))){
0000003C A807 ADD R0,R13,#0x1C
0000003E 7800 LDRB R0,[R0,#0x0] ; mode
00000040 B401 PUSH {R0}
00000042 1C20 MOV R0,R4 ; fs
00000044 9904 LDR R1,[R13,#0x10] ; Cache
00000046 1C2A MOV R2,R5 ; fatname
00000048 1C33 MOV R3,R6 ; loc
0000004A F7FF BL dir_findinCluster?T ; T=0x0001 (1)
0000004C FFD9 BL dir_findinCluster?T ; T=0x0001 (2)
0000004E B001 ADD R13,#0x4
00000050 1C07 MOV R7,R0 ; cluster
00000052 ---- Variable 'cluster' assigned to Register 'R7' ----
00000052 2800 CMP R0,#0x0 ; dir_findinCluster?T
00000054 D001 BEQ L_39 ; T=0x0000005A
263: return(cluster);
00000056 1C38 MOV R0,R7 ; cluster
ARM COMPILER V2.42, dir 27/03/06 10:45:48 PAGE 18
00000058 E00C B L_38 ; T=0x00000074
265: }
0000005A L_39:
0000005A 9A00 LDR R2,[R13,#0x0] ; c
0000005C 1C10 MOV R0,R2
0000005E 3001 ADD R0,#0x1
00000060 9000 STR R0,[R13,#0x0] ; c
00000062 1C20 MOV R0,R4 ; fs
00000064 A901 ADD R1,R13,#0x4
00000066 F7FF BL fat_LogicToDiscCluster?T ; T=0x0001 (1)
00000068 FFCB BL fat_LogicToDiscCluster?T ; T=0x0001 (2)
0000006A 0400 LSL R0,R0,#0x10 ; fat_LogicToDiscCluster?T
0000006C 1400 ASR R0,R0,#0x10
0000006E 2800 CMP R0,#0x0
00000070 D0E4 BEQ L_41 ; T=0x0000003C
266: return(0);
00000072 2000 MOV R0,#0x0
00000074 ; SCOPE-END
267: }
00000074 L_38:
00000074 B007 ADD R13,#0x1C
00000076 BCF0 POP {R4-R7}
00000078 BC08 POP {R3}
0000007A 4718 BX R3
0000007C ENDP ; 'dir_findinDir?T'
*** CODE SEGMENT '?PR?dir_findinRootArea?T?dir':
275: euint32 dir_findinRootArea(FileSystem *fs,eint8* fatname, FileLocation *loc, euint8 mode)
00000000 B5F0 PUSH {R4-R7,LR}
00000002 1C1F MOV R7,R3 ; mode
00000004 ---- Variable 'mode' assigned to Register 'R7' ----
00000004 1C16 MOV R6,R2 ; loc
00000006 ---- Variable 'loc' assigned to Register 'R6' ----
00000006 1C0D MOV R5,R1 ; fatname
00000008 ---- Variable 'fatname' assigned to Register 'R5' ----
00000008 1C04 MOV R4,R0 ; fs
0000000A ---- Variable 'fs' assigned to Register 'R4' ----
0000000A B083 SUB R13,#0xC
276: {
0000000C ; SCOPE-START
278: euint8 *buf=0;
0000000C 2000 MOV R0,#0x0
0000000E 9002 STR R0,[R13,#0x8] ; buf
280: if((fs->type != FAT12) && (fs->type != FAT16))return(0);
00000010 1C20 MOV R0,R4 ; fs
00000012 303C ADD R0,#0x3C
00000014 7800 LDRB R0,[R0,#0x0]
00000016 2801 CMP R0,#0x1
00000018 D003 BEQ L_50 ; T=0x00000022
0000001A 2802 CMP R0,#0x2
0000001C D001 BEQ L_50 ; T=0x00000022
0000001E 2000 MOV R0,#0x0
00000020 E03D B L_45 ; T=0x0000009E
282: for(c=fs->FirstSectorRootDir;c<(fs->FirstSectorRootDir+fs->volumeId.RootEntryCount/32);c++){
00000022 L_50:
00000022 1C20 MOV R0,R4 ; fs
00000024 6AC0 LDR R0,[R0,#0x2C]
00000026 9000 STR R0,[R13,#0x0] ; c
00000028 E026 B L_48 ; T=0x00000078
0000002A L_49:
283: buf = part_getSect(fs->part,c,IOM_MODE_READONLY);
0000002A 1C20 MOV R0,R4 ; fs
0000002C 6800 LDR R0,[R0,#0x0] ; fs
0000002E 9900 LDR R1,[R13,#0x0] ; c
00000030 2201 MOV R2,#0x1
00000032 F7FF BL part_getSect?T ; T=0x0001 (1)
00000034 FFE5 BL part_getSect?T ; T=0x0001 (2)
ARM COMPILER V2.42, dir 27/03/06 10:45:48 PAGE 19
00000036 9002 STR R0,[R13,#0x8] ; buf
284: if((fclus=dir_findinBuf(buf,fatname,loc,mode))){
00000038 1C38 MOV R0,R7 ; mode
0000003A 0603 LSL R3,R0,#0x18 ; mode
0000003C 0E1B LSR R3,R3,#0x18
0000003E 9802 LDR R0,[R13,#0x8] ; buf
00000040 1C29 MOV R1,R5 ; fatname
00000042 1C32 MOV R2,R6 ; loc
00000044 F7FF BL dir_findinBuf?T ; T=0x0001 (1)
00000046 FFDC BL dir_findinBuf?T ; T=0x0001 (2)
00000048 9001 STR R0,[R13,#0x4] ; fclus
0000004A 2800 CMP R0,#0x0 ; dir_findinBuf?T
0000004C D00C BEQ L_51 ; T=0x00000068
285: if(loc)loc->Sector=c;
0000004E 1C30 MOV R0,R6 ; loc
00000050 2800 CMP R0,#0x0 ; loc
00000052 D002 BEQ L_52 ; T=0x0000005A
00000054 9900 LDR R1,[R13,#0x0] ; c
00000056 1C30 MOV R0,R6 ; loc
00000058 6001 STR R1,[R0,#0x0] ; loc
0000005A L_52:
286: part_relSect(fs->part,buf);
0000005A 1C20 MOV R0,R4 ; fs
0000005C 6800 LDR R0,[R0,#0x0] ; fs
0000005E 9902 LDR R1,[R13,#0x8] ; buf
00000060 F7FF BL part_relSect?T ; T=0x0001 (1)
00000062 FFCE BL part_relSect?T ; T=0x0001 (2)
287: return(fclus);
00000064 9801 LDR R0,[R13,#0x4] ; fclus
00000066 E01A B L_45 ; T=0x0000009E
288: }
00000068 L_51:
289: part_relSect(fs->part,buf);
00000068 1C20 MOV R0,R4 ; fs
0000006A 6800 LDR R0,[R0,#0x0] ; fs
0000006C 9902 LDR R1,[R13,#0x8] ; buf
0000006E F7FF BL part_relSect?T ; T=0x0001 (1)
00000070 FFC7 BL part_relSect?T ; T=0x0001 (2)
290: }
00000072 9800 LDR R0,[R13,#0x0] ; c
00000074 3001 ADD R0,#0x1
00000076 9000 STR R0,[R13,#0x0] ; c
00000078 L_48:
00000078 1C20 MOV R0,R4 ; fs
0000007A 8980 LDRH R0,[R0,#0xC]
0000007C 2120 MOV R1,#0x20
0000007E F7FF BL ?C?SDIV?T ; T=0x0001 (1) ; ?C?SDIV?T
00000080 FFBF BL ?C?SDIV?T ; T=0x0001 (2) ; ?C?SDIV?T
00000082 1C08 MOV R0,R1
00000084 1C02 MOV R2,R0
00000086 1C20 MOV R0,R4 ; fs
00000088 6AC1 LDR R1,[R0,#0x2C]
0000008A 1889 ADD R1,R2
0000008C 9800 LDR R0,[R13,#0x0] ; c
0000008E 4288 CMP R0,R1
00000090 D3CB BCC L_49 ; T=0x0000002A
291: part_relSect(fs->part,buf);
00000092 1C20 MOV R0,R4 ; fs
00000094 6800 LDR R0,[R0,#0x0] ; fs
00000096 9902 LDR R1,[R13,#0x8] ; buf
00000098 F7FF BL part_relSect?T ; T=0x0001 (1)
0000009A FFB2 BL part_relSect?T ; T=0x0001 (2)
292: return(0);
0000009C 2000 MOV R0,#0x0
0000009E ; SCOPE-END
293: }
ARM COMPILER V2.42, dir 27/03/06 10:45:48 PAGE 20
0000009E L_45:
0000009E B003 ADD R13,#0xC
000000A0 BCF0 POP {R4-R7}
000000A2 BC08 POP {R3}
000000A4 4718 BX R3
000000A6 ENDP ; 'dir_findinRootArea?T'
*** CODE SEGMENT '?PR?dir_getFatFileName?T?dir':
301: esint8 dir_getFatFileName(eint8* filename, eint8* fatfilename)
00000000 B5F0 PUSH {R4-R7,LR}
00000002 1C0E MOV R6,R1 ; fatfilename
00000004 ---- Variable 'fatfilename' assigned to Register 'R6' ----
00000004 1C07 MOV R7,R0 ; filename
00000006 ---- Variable 'filename' assigned to Register 'R7' ----
00000006 B083 SUB R13,#0xC
302: {
00000008 ; SCOPE-START
303: eint8 ffnamec[11],*next,nn=0;
00000008 2400 MOV R4,#0x0
0000000A ---- Variable 'nn' assigned to Register 'R4' ----
305: memClr(ffnamec,11); memClr(fatfilename,11);
0000000A A800 ADD R0,R13,#0x0
0000000C 210B MOV R1,#0xB
0000000E F7FF BL memClr?T ; T=0x0001 (1)
00000010 FFF7 BL memClr?T ; T=0x0001 (2)
00000012 1C30 MOV R0,R6 ; fatfilename
00000014 210B MOV R1,#0xB
00000016 F7FF BL memClr?T ; T=0x0001 (1)
00000018 FFF3 BL memClr?T ; T=0x0001 (2)
306: next = filename;
0000001A 1C3D MOV R5,R7 ; filename
0000001C ---- Variable 'next' assigned to Register 'R5' ----
308: if(*filename=='/')next++;
0000001C 1C38 MOV R0,R7 ; filename
0000001E 7800 LDRB R0,[R0,#0x0] ; filename
00000020 282F CMP R0,#0x2F
00000022 D100
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -