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

📄 dir.lst

📁 Philips LPC2138 Demo Application with Keil C
💻 LST
📖 第 1 页 / 共 5 页
字号:
 00000016  1C21      MOV         R1,R4 ; filerec
 00000018  7308      STRB        R0,[R1,#0xC]
   72:     filerec->MilliSecTimeStamp=0x00;
 0000001A  2000      MOV         R0,#0x0
 0000001C  1C21      MOV         R1,R4 ; filerec
 0000001E  7348      STRB        R0,[R1,#0xD]
   73:     filerec->CreatedTime=time_getTime();
 00000020  2000      MOV         R0,#0x0
 00000022  1C21      MOV         R1,R4 ; filerec
 00000024  81C8      STRH        R0,[R1,#0xE]
   74:     filerec->CreatedDate=time_getDate(); 
 00000026  2000      MOV         R0,#0x0
 00000028  1C21      MOV         R1,R4 ; filerec
 0000002A  8208      STRH        R0,[R1,#0x10]
   75:     filerec->AccessDate=filerec->CreatedDate;
 0000002C  1C20      MOV         R0,R4 ; filerec
 0000002E  8A00      LDRH        R0,[R0,#0x10]
 00000030  1C21      MOV         R1,R4 ; filerec
 00000032  8248      STRH        R0,[R1,#0x12]
   76:     filerec->FirstClusterHigh=0x0000;
 00000034  2000      MOV         R0,#0x0
 00000036  1C21      MOV         R1,R4 ; filerec
 00000038  8288      STRH        R0,[R1,#0x14]
   77:     filerec->WriteTime=filerec->CreatedTime;
 0000003A  1C20      MOV         R0,R4 ; filerec
 0000003C  89C0      LDRH        R0,[R0,#0xE]
 0000003E  1C21      MOV         R1,R4 ; filerec
 00000040  82C8      STRH        R0,[R1,#0x16]
   78:     filerec->WriteDate=filerec->CreatedDate;
 00000042  1C20      MOV         R0,R4 ; filerec
 00000044  8A00      LDRH        R0,[R0,#0x10]
 00000046  1C21      MOV         R1,R4 ; filerec
 00000048  8308      STRH        R0,[R1,#0x18]
   79:     filerec->FirstClusterLow=0x0000;
 0000004A  2000      MOV         R0,#0x0
 0000004C  1C21      MOV         R1,R4 ; filerec
 0000004E  8348      STRH        R0,[R1,#0x1A]
   80:     filerec->FileSize=0x00000000;
 00000050  2000      MOV         R0,#0x0
 00000052  1C21      MOV         R1,R4 ; filerec
 00000054  61C8      STR         R0,[R1,#0x1C]
   81: }
 00000056  BC10      POP         {R4}
 00000058  BC08      POP         {R3}
 0000005A  4718      BX          R3
 0000005C          ENDP ; 'dir_createDefaultEntry?T'


*** CODE SEGMENT '?PR?dir_setFirstCluster?T?dir':
   90: void dir_setFirstCluster(FileSystem *fs,FileLocation *loc,euint32 cluster_addr)
 00000000  B570      PUSH        {R4-R6,LR}
 00000002  1C16      MOV         R6,R2 ; cluster_addr
 00000004  ---- Variable 'cluster_addr' assigned to Register 'R6' ----
 00000004  1C0D      MOV         R5,R1 ; loc
 00000006  ---- Variable 'loc' assigned to Register 'R5' ----
 00000006  1C04      MOV         R4,R0 ; fs
 00000008  ---- Variable 'fs' assigned to Register 'R4' ----
   91: {
ARM COMPILER V2.42,  dir                                                                   27/03/06  10:45:48  PAGE 10  

 00000008            ; SCOPE-START
   94:      buf = part_getSect(fs->part,loc->Sector,IOM_MODE_READWRITE);
 00000008  1C20      MOV         R0,R4 ; fs
 0000000A  6800      LDR         R0,[R0,#0x0] ; fs
 0000000C  1C29      MOV         R1,R5 ; loc
 0000000E  6809      LDR         R1,[R1,#0x0] ; loc
 00000010  2202      MOV         R2,#0x2
 00000012  F7FF      BL          part_getSect?T  ; T=0x0001  (1)
 00000014  FFF5      BL          part_getSect?T  ; T=0x0001  (2)
 00000016  1C03      MOV         R3,R0 ; buf
 00000018  ---- Variable 'buf' assigned to Register 'R3' ----
   95:     (((FileRecord*)buf)+loc->Offset)->FirstClusterHigh=cluster_addr>>16;
 00000018  1C30      MOV         R0,R6 ; cluster_addr
 0000001A  0C00      LSR         R0,R0,#0x10 ; cluster_addr
 0000001C  0400      LSL         R0,R0,#0x10
 0000001E  0C00      LSR         R0,R0,#0x10
 00000020  1C29      MOV         R1,R5 ; loc
 00000022  7909      LDRB        R1,[R1,#0x4]
 00000024  1C0A      MOV         R2,R1
 00000026  0152      LSL         R2,R2,#0x5
 00000028  1C19      MOV         R1,R3 ; buf
 0000002A  1889      ADD         R1,R2 ; buf
 0000002C  8288      STRH        R0,[R1,#0x14]
   96:     (((FileRecord*)buf)+loc->Offset)->FirstClusterLow=cluster_addr&0xFFFF;  
 0000002E  1C30      MOV         R0,R6 ; cluster_addr
 00000030  4800      LDR         R1,=0xFFFF
 00000032  4008      AND         R0,R1
 00000034  0400      LSL         R0,R0,#0x10
 00000036  0C00      LSR         R0,R0,#0x10
 00000038  1C29      MOV         R1,R5 ; loc
 0000003A  7909      LDRB        R1,[R1,#0x4]
 0000003C  1C0A      MOV         R2,R1
 0000003E  0152      LSL         R2,R2,#0x5
 00000040  1C19      MOV         R1,R3 ; buf
 00000042  1889      ADD         R1,R2 ; buf
 00000044  8348      STRH        R0,[R1,#0x1A]
   97:     part_relSect(fs->part,buf);
 00000046  1C20      MOV         R0,R4 ; fs
 00000048  6800      LDR         R0,[R0,#0x0] ; fs
 0000004A  1C19      MOV         R1,R3 ; buf
 0000004C  F7FF      BL          part_relSect?T  ; T=0x0001  (1)
 0000004E  FFD8      BL          part_relSect?T  ; T=0x0001  (2)
 00000050            ; SCOPE-END
   98: }
 00000050  BC70      POP         {R4-R6}
 00000052  BC08      POP         {R3}
 00000054  4718      BX          R3
 00000056          ENDP ; 'dir_setFirstCluster?T'


*** CODE SEGMENT '?PR?dir_setFileSize?T?dir':
  107: void dir_setFileSize(FileSystem *fs, FileLocation *loc,euint32 numbytes)
 00000000  B570      PUSH        {R4-R6,LR}
 00000002  1C16      MOV         R6,R2 ; numbytes
 00000004  ---- Variable 'numbytes' assigned to Register 'R6' ----
 00000004  1C0D      MOV         R5,R1 ; loc
 00000006  ---- Variable 'loc' assigned to Register 'R5' ----
 00000006  1C04      MOV         R4,R0 ; fs
 00000008  ---- Variable 'fs' assigned to Register 'R4' ----
  108: {
 00000008            ; SCOPE-START
  111:     buf = part_getSect(fs->part,loc->Sector,IOM_MODE_READWRITE);
 00000008  1C20      MOV         R0,R4 ; fs
 0000000A  6800      LDR         R0,[R0,#0x0] ; fs
 0000000C  1C29      MOV         R1,R5 ; loc
 0000000E  6809      LDR         R1,[R1,#0x0] ; loc
 00000010  2202      MOV         R2,#0x2
 00000012  F7FF      BL          part_getSect?T  ; T=0x0001  (1)
ARM COMPILER V2.42,  dir                                                                   27/03/06  10:45:48  PAGE 11  

 00000014  FFF5      BL          part_getSect?T  ; T=0x0001  (2)
 00000016  1C03      MOV         R3,R0 ; buf
 00000018  ---- Variable 'buf' assigned to Register 'R3' ----
  112:     (((FileRecord*)buf)+loc->Offset)->FileSize=numbytes;
 00000018  1C30      MOV         R0,R6 ; numbytes
 0000001A  1C29      MOV         R1,R5 ; loc
 0000001C  7909      LDRB        R1,[R1,#0x4]
 0000001E  1C0A      MOV         R2,R1
 00000020  0152      LSL         R2,R2,#0x5
 00000022  1C19      MOV         R1,R3 ; buf
 00000024  1889      ADD         R1,R2 ; buf
 00000026  61C8      STR         R0,[R1,#0x1C]
  113:     part_relSect(fs->part,buf);
 00000028  1C20      MOV         R0,R4 ; fs
 0000002A  6800      LDR         R0,[R0,#0x0] ; fs
 0000002C  1C19      MOV         R1,R3 ; buf
 0000002E  F7FF      BL          part_relSect?T  ; T=0x0001  (1)
 00000030  FFE7      BL          part_relSect?T  ; T=0x0001  (2)
 00000032            ; SCOPE-END
  114: }
 00000032  BC70      POP         {R4-R6}
 00000034  BC08      POP         {R3}
 00000036  4718      BX          R3
 00000038          ENDP ; 'dir_setFileSize?T'


*** CODE SEGMENT '?PR?dir_updateDirectoryEntry?T?dir':
  123: esint8 dir_updateDirectoryEntry(FileSystem *fs,FileRecord *entry,FileLocation *loc)
 00000000  B5F0      PUSH        {R4-R7,LR}
 00000002  1C17      MOV         R7,R2 ; loc
 00000004  ---- Variable 'loc' assigned to Register 'R7' ----
 00000004  1C0E      MOV         R6,R1 ; entry
 00000006  ---- Variable 'entry' assigned to Register 'R6' ----
 00000006  1C05      MOV         R5,R0 ; fs
 00000008  ---- Variable 'fs' assigned to Register 'R5' ----
  124: {
 00000008            ; SCOPE-START
  127:     buf = part_getSect(fs->part,loc->Sector,IOM_MODE_READWRITE);
 00000008  1C28      MOV         R0,R5 ; fs
 0000000A  6800      LDR         R0,[R0,#0x0] ; fs
 0000000C  1C39      MOV         R1,R7 ; loc
 0000000E  6809      LDR         R1,[R1,#0x0] ; loc
 00000010  2202      MOV         R2,#0x2
 00000012  F7FF      BL          part_getSect?T  ; T=0x0001  (1)
 00000014  FFF5      BL          part_getSect?T  ; T=0x0001  (2)
 00000016  1C04      MOV         R4,R0 ; buf
 00000018  ---- Variable 'buf' assigned to Register 'R4' ----
  128:     memCpy(entry,buf+(loc->Offset*sizeof(*entry)),sizeof(*entry));
 00000018  1C38      MOV         R0,R7 ; loc
 0000001A  7900      LDRB        R0,[R0,#0x4]
 0000001C  0140      LSL         R0,R0,#0x5
 0000001E  1C21      MOV         R1,R4 ; buf
 00000020  1809      ADD         R1,R0 ; buf
 00000022  1C30      MOV         R0,R6 ; entry
 00000024  2220      MOV         R2,#0x20
 00000026  F7FF      BL          memCpy?T  ; T=0x0001  (1)
 00000028  FFEB      BL          memCpy?T  ; T=0x0001  (2)
  129:     part_relSect(fs->part,buf);
 0000002A  1C28      MOV         R0,R5 ; fs
 0000002C  6800      LDR         R0,[R0,#0x0] ; fs
 0000002E  1C21      MOV         R1,R4 ; buf
 00000030  F7FF      BL          part_relSect?T  ; T=0x0001  (1)
 00000032  FFE6      BL          part_relSect?T  ; T=0x0001  (2)
  130:     return(0);
 00000034  2000      MOV         R0,#0x0
 00000036            ; SCOPE-END
  131: }
 00000036  BCF0      POP         {R4-R7}
ARM COMPILER V2.42,  dir                                                                   27/03/06  10:45:48  PAGE 12  

 00000038  BC08      POP         {R3}
 0000003A  4718      BX          R3
 0000003C          ENDP ; 'dir_updateDirectoryEntry?T'


*** CODE SEGMENT '?PR?dir_findFileinBuf?T?dir':
  143: euint32 dir_findFileinBuf(euint8 *buf, eint8 *fatname, FileLocation *loc)
 00000000  B5F0      PUSH        {R4-R7,LR}
 00000002  1C17      MOV         R7,R2 ; loc
 00000004  ---- Variable 'loc' assigned to Register 'R7' ----
 00000004  1C0E      MOV         R6,R1 ; fatname
 00000006  ---- Variable 'fatname' assigned to Register 'R6' ----
 00000006  1C05      MOV         R5,R0 ; buf
 00000008  ---- Variable 'buf' assigned to Register 'R5' ----
 00000008  B088      SUB         R13,#0x20
  144: {
 0000000A            ; SCOPE-START
  148:     for(c=0; c<16; c++)
 0000000A  2400      MOV         R4,#0x0
 0000000C  ---- Variable 'c' assigned to Register 'R4' ----
 0000000C  E03C      B           L_4  ; T=0x00000088
 0000000E          L_5:
  150:         fileEntry = *(((FileRecord*)buf) + c);
 0000000E  1C20      MOV         R0,R4 ; c
 00000010  0602      LSL         R2,R0,#0x18 ; c
 00000012  0E12      LSR         R2,R2,#0x18
 00000014  0152      LSL         R2,R2,#0x5
 00000016  1C29      MOV         R1,R5 ; buf
 00000018  1889      ADD         R1,R2 ; buf
 0000001A  A800      ADD         R0,R13,#0x0
 0000001C  2208      MOV         R2,#0x8
 0000001E          L_72:
 0000001E  C908      LDMIA       R1!,{R3}
 00000020  C008      STMIA       R0!,{R3}
 00000022  1E52      SUB         R2,R2,#0x1
 00000024  D1FB      BNE         L_72  ; T=0x0000001E
  152:         if( !( (fileEntry.Attribute & 0x0F) == 0x0F ) )
 00000026  200B      MOV         R0,#0xB
 00000028  4468      ADD         R0,R13
 0000002A  7800      LDRB        R0,[R0,#0x0] ; fileEntry+11
 0000002C  210F      MOV         R1,#0xF
 0000002E  4008      AND         R0,R1
 00000030  280F      CMP         R0,#0xF
 00000032  D026      BEQ         L_2  ; T=0x00000082
  154:             if( strMatch((eint8*)fileEntry.FileName,fatname,11) == 0 )
 00000034  A800      ADD         R0,R13,#0x0
 00000036  1C31      MOV         R1,R6 ; fatname
 00000038  220B      MOV         R2,#0xB
 0000003A  F7FF      BL          strMatch?T  ; T=0x0001  (1)
 0000003C  FFE1      BL          strMatch?T  ; T=0x0001  (2)
 0000003E  0400      LSL         R0,R0,#0x10 ; strMatch?T
 00000040  0C00      LSR         R0,R0,#0x10
 00000042  2800      CMP         R0,#0x0
 00000044  D11D      BNE         L_2  ; T=0x00000082
  157:                 if(loc)loc->Offset = c;
 00000046  1C38      MOV         R0,R7 ; loc
 00000048  2800      CMP         R0,#0x0 ; loc
 0000004A  D002      BEQ         L_9  ; T=0x00000052
 0000004C  1C20      MOV         R0,R4 ; c
 0000004E  1C39      MOV         R1,R7 ; loc
 00000050  7108      STRB        R0,[R1,#0x4]
 00000052          L_9:
  158:                 if(loc)loc->attrib = fileEntry.Attribute;
 00000052  1C38      MOV         R0,R7 ; loc
 00000054  2800      CMP         R0,#0x0 ; loc

⌨️ 快捷键说明

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