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

📄 ui.lst

📁 Philips LPC2138 Demo Application with Keil C
💻 LST
📖 第 1 页 / 共 3 页
字号:
 00000094  B008      ADD         R13,#0x20
 00000096  BC70      POP         {R4-R6}
 00000098  BC08      POP         {R3}
 0000009A  4718      BX          R3
 0000009C          ENDP ; 'rmfile?T'


*** CODE SEGMENT '?PR?mkdir?T?ui':
  149: esint8 mkdir(FileSystem *fs,eint8* dirname)
 00000000  B5F0      PUSH        {R4-R7,LR}
 00000002  1C0F      MOV         R7,R1 ; dirname
 00000004  ---- Variable 'dirname' assigned to Register 'R7' ----
 00000004  1C05      MOV         R5,R0 ; fs
 00000006  ---- Variable 'fs' assigned to Register 'R5' ----
 00000006  B08E      SUB         R13,#0x38
  150: {
 00000008            ; SCOPE-START
  157:     if( fs_findFile(fs,dirname,&loc,&parentdir) ){
 00000008  1C28      MOV         R0,R5 ; fs
 0000000A  1C39      MOV         R1,R7 ; dirname
 0000000C  AC00      ADD         R4,R13,#0x0
 0000000E  1C22      MOV         R2,R4
 00000010  AB0A      ADD         R3,R13,#0x28
 00000012  F7FF      BL          fs_findFile?T  ; T=0x0001  (1)
ARM COMPILER V2.42,  ui                                                                    27/03/06  10:45:52  PAGE 11  

 00000014  FFF5      BL          fs_findFile?T  ; T=0x0001  (2)
 00000016  2800      CMP         R0,#0x0 ; fs_findFile?T
 00000018  D001      BEQ         L_27  ; T=0x0000001E
  158:         return(-1);
 0000001A  4800      LDR         R0,=0xFFFFFFFF
 0000001C  E0CB      B           L_28  ; T=0x000001B6
  159:     }
 0000001E          L_27:
  160:     if(parentdir==0)return(-2);
 0000001E  980A      LDR         R0,[R13,#0x28] ; parentdir
 00000020  2800      CMP         R0,#0x0
 00000022  D101      BNE         L_29  ; T=0x00000028
 00000024  4800      LDR         R0,=0xFFFFFFFE
 00000026  E0C6      B           L_28  ; T=0x000001B6
 00000028          L_29:
  162:     if(!fs_findFreeFile(fs,dirname,&loc,0))return(-3);
 00000028  1C28      MOV         R0,R5 ; fs
 0000002A  1C39      MOV         R1,R7 ; dirname
 0000002C  1C22      MOV         R2,R4
 0000002E  2300      MOV         R3,#0x0
 00000030  F7FF      BL          fs_findFreeFile?T  ; T=0x0001  (1)
 00000032  FFE6      BL          fs_findFreeFile?T  ; T=0x0001  (2)
 00000034  0400      LSL         R0,R0,#0x10 ; fs_findFreeFile?T
 00000036  1400      ASR         R0,R0,#0x10
 00000038  2800      CMP         R0,#0x0
 0000003A  D101      BNE         L_30  ; T=0x00000040
 0000003C  4800      LDR         R0,=0xFFFFFFFD
 0000003E  E0BA      B           L_28  ; T=0x000001B6
 00000040          L_30:
  171:     nc = fs_getNextFreeCluster(fs,fs_giveFreeClusterHint(fs));
 00000040  1C28      MOV         R0,R5 ; fs
 00000042  F7FF      BL          fs_giveFreeClusterHint?T  ; T=0x0001  (1)
 00000044  FFDD      BL          fs_giveFreeClusterHint?T  ; T=0x0001  (2)
 00000046  1C01      MOV         R1,R0
 00000048  1C28      MOV         R0,R5 ; fs
 0000004A  F7FF      BL          fs_getNextFreeCluster?T  ; T=0x0001  (1)
 0000004C  FFD9      BL          fs_getNextFreeCluster?T  ; T=0x0001  (2)
 0000004E  1C04      MOV         R4,R0 ; nc
 00000050  ---- Variable 'nc' assigned to Register 'R4' ----
  172:     if(nc==0)return(0);
 00000050  1C20      MOV         R0,R4 ; nc
 00000052  2800      CMP         R0,#0x0 ; nc
 00000054  D101      BNE         L_31  ; T=0x0000005A
 00000056  2000      MOV         R0,#0x0
 00000058  E0AD      B           L_28  ; T=0x000001B6
 0000005A          L_31:
  174:     fs_clearCluster(fs,nc);
 0000005A  1C28      MOV         R0,R5 ; fs
 0000005C  1C21      MOV         R1,R4 ; nc
 0000005E  F7FF      BL          fs_clearCluster?T  ; T=0x0001  (1)
 00000060  FFCF      BL          fs_clearCluster?T  ; T=0x0001  (2)
  176:     buf = part_getSect(fs->part,loc.Sector,IOM_MODE_READWRITE);
 00000062  1C28      MOV         R0,R5 ; fs
 00000064  6800      LDR         R0,[R0,#0x0] ; fs
 00000066  9900      LDR         R1,[R13,#0x0] ; loc
 00000068  2202      MOV         R2,#0x2
 0000006A  F7FF      BL          part_getSect?T  ; T=0x0001  (1)
 0000006C  FFC9      BL          part_getSect?T  ; T=0x0001  (2)
 0000006E  1C06      MOV         R6,R0 ; buf
 00000070  ---- Variable 'buf' assigned to Register 'R6' ----
  178:     dir_getFatFileName(dirname,ffname);
 00000070  1C38      MOV         R0,R7 ; dirname
 00000072  A90B      ADD         R1,R13,#0x2C
 00000074  F7FF      BL          dir_getFatFileName?T  ; T=0x0001  (1)
 00000076  FFC4      BL          dir_getFatFileName?T  ; T=0x0001  (2)
  179:     memClr(&direntry,sizeof(direntry));
ARM COMPILER V2.42,  ui                                                                    27/03/06  10:45:52  PAGE 12  

 00000078  A802      ADD         R0,R13,#0x8
 0000007A  2120      MOV         R1,#0x20
 0000007C  F7FF      BL          memClr?T  ; T=0x0001  (1)
 0000007E  FFC0      BL          memClr?T  ; T=0x0001  (2)
  180:     memCpy(ffname,&direntry,11);
 00000080  A80B      ADD         R0,R13,#0x2C
 00000082  A902      ADD         R1,R13,#0x8
 00000084  220B      MOV         R2,#0xB
 00000086  F7FF      BL          memCpy?T  ; T=0x0001  (1)
 00000088  FFBB      BL          memCpy?T  ; T=0x0001  (2)
  181:     direntry.FileSize = 0;
 0000008A  2000      MOV         R0,#0x0
 0000008C  9009      STR         R0,[R13,#0x24] ; direntry
  182:     direntry.FirstClusterHigh=nc>>16;
 0000008E  1C21      MOV         R1,R4 ; nc
 00000090  0C09      LSR         R1,R1,#0x10 ; nc
 00000092  0409      LSL         R1,R1,#0x10
 00000094  0C09      LSR         R1,R1,#0x10
 00000096  A807      ADD         R0,R13,#0x1C
 00000098  8001      STRH        R1,[R0,#0x0] ; direntry+20
  183:     direntry.FirstClusterLow=nc&0xFFFF;
 0000009A  1C21      MOV         R1,R4 ; nc
 0000009C  4800      LDR         R0,=0xFFFF
 0000009E  4001      AND         R1,R0
 000000A0  0409      LSL         R1,R1,#0x10
 000000A2  0C09      LSR         R1,R1,#0x10
 000000A4  2022      MOV         R0,#0x22
 000000A6  4468      ADD         R0,R13
 000000A8  8001      STRH        R1,[R0,#0x0] ; direntry+26
  184:     direntry.Attribute = ATTR_DIRECTORY;
 000000AA  2110      MOV         R1,#0x10
 000000AC  2013      MOV         R0,#0x13
 000000AE  4468      ADD         R0,R13
 000000B0  7001      STRB        R1,[R0,#0x0] ; direntry+11
  185:     memCpy(&direntry,buf+(32*loc.Offset),32);
 000000B2  A801      ADD         R0,R13,#0x4
 000000B4  7800      LDRB        R0,[R0,#0x0] ; loc+4
 000000B6  0140      LSL         R0,R0,#0x5
 000000B8  1C31      MOV         R1,R6 ; buf
 000000BA  1809      ADD         R1,R0 ; buf
 000000BC  A802      ADD         R0,R13,#0x8
 000000BE  2220      MOV         R2,#0x20
 000000C0  F7FF      BL          memCpy?T  ; T=0x0001  (1)
 000000C2  FF9E      BL          memCpy?T  ; T=0x0001  (2)
  187:     part_relSect(fs->part,buf);
 000000C4  1C28      MOV         R0,R5 ; fs
 000000C6  6800      LDR         R0,[R0,#0x0] ; fs
 000000C8  1C31      MOV         R1,R6 ; buf
 000000CA  F7FF      BL          part_relSect?T  ; T=0x0001  (1)
 000000CC  FF99      BL          part_relSect?T  ; T=0x0001  (2)
  189:     buf = part_getSect(fs->part,fs_clusterToSector(fs,nc),IOM_MODE_READWRITE);
 000000CE  1C28      MOV         R0,R5 ; fs
 000000D0  1C21      MOV         R1,R4 ; nc
 000000D2  F7FF      BL          fs_clusterToSector?T  ; T=0x0001  (1)
 000000D4  FF95      BL          fs_clusterToSector?T  ; T=0x0001  (2)
 000000D6  1C01      MOV         R1,R0
 000000D8  1C28      MOV         R0,R5 ; fs
 000000DA  6800      LDR         R0,[R0,#0x0] ; fs
 000000DC  2202      MOV         R2,#0x2
 000000DE  F7FF      BL          part_getSect?T  ; T=0x0001  (1)
 000000E0  FF8F      BL          part_getSect?T  ; T=0x0001  (2)
 000000E2  1C06      MOV         R6,R0 ; buf
  191:     memClr(&direntry,sizeof(direntry));
 000000E4  A802      ADD         R0,R13,#0x8
 000000E6  2120      MOV         R1,#0x20
 000000E8  F7FF      BL          memClr?T  ; T=0x0001  (1)
ARM COMPILER V2.42,  ui                                                                    27/03/06  10:45:52  PAGE 13  

 000000EA  FF8A      BL          memClr?T  ; T=0x0001  (2)
  192:     memCpy(".          ",&direntry,11);
 000000EC  4800      LDR         R0,=??S_3 ; ??S_3
 000000EE  A902      ADD         R1,R13,#0x8
 000000F0  220B      MOV         R2,#0xB
 000000F2  F7FF      BL          memCpy?T  ; T=0x0001  (1)
 000000F4  FF85      BL          memCpy?T  ; T=0x0001  (2)
  193:     direntry.Attribute = ATTR_DIRECTORY;
 000000F6  2110      MOV         R1,#0x10
 000000F8  2013      MOV         R0,#0x13
 000000FA  4468      ADD         R0,R13
 000000FC  7001      STRB        R1,[R0,#0x0] ; direntry+11
  194:     direntry.FileSize = 0;
 000000FE  2000      MOV         R0,#0x0
 00000100  9009      STR         R0,[R13,#0x24] ; direntry
  195:     direntry.FirstClusterHigh=nc>>16;
 00000102  1C21      MOV         R1,R4 ; nc
 00000104  0C09      LSR         R1,R1,#0x10 ; nc
 00000106  0409      LSL         R1,R1,#0x10
 00000108  0C09      LSR         R1,R1,#0x10
 0000010A  A807      ADD         R0,R13,#0x1C
 0000010C  8001      STRH        R1,[R0,#0x0] ; direntry+20
  196:     direntry.FirstClusterLow=nc&0xFFFF;
 0000010E  1C21      MOV         R1,R4 ; nc
 00000110  4800      LDR         R0,=0xFFFF
 00000112  4001      AND         R1,R0
 00000114  0409      LSL         R1,R1,#0x10
 00000116  0C09      LSR         R1,R1,#0x10
 00000118  2022      MOV         R0,#0x22
 0000011A  4468      ADD         R0,R13
 0000011C  8001      STRH        R1,[R0,#0x0] ; direntry+26
  197:     memCpy(&direntry,buf,32);
 0000011E  A802      ADD         R0,R13,#0x8
 00000120  1C31      MOV         R1,R6 ; buf
 00000122  2220      MOV         R2,#0x20
 00000124  F7FF      BL          memCpy?T  ; T=0x0001  (1)
 00000126  FF6C      BL          memCpy?T  ; T=0x0001  (2)
  199:     if(fs->type == FAT32 && parentdir == fs->volumeId.RootCluster){
 00000128  1C28      MOV         R0,R5 ; fs
 0000012A  303C      ADD         R0,#0x3C
 0000012C  7800      LDRB        R0,[R0,#0x0]
 0000012E  2803      CMP         R0,#0x3
 00000130  D106      BNE         L_32  ; T=0x00000140
 00000132  1C28      MOV         R0,R5 ; fs
 00000134  69C1      LDR         R1,[R0,#0x1C]
 00000136  980A      LDR         R0,[R13,#0x28] ; parentdir
 00000138  4288      CMP         R0,R1
 0000013A  D101      BNE         L_32  ; T=0x00000140
  200:         parentdir = 0;
 0000013C  2000      MOV         R0,#0x0
 0000013E  900A      STR         R0,[R13,#0x28] ; parentdir
  201:     }
 00000140          L_32:
  202:     if(fs->type != FAT32 && parentdir<=1){
 00000140  1C28      MOV         R0,R5 ; fs
 00000142  303C      ADD         R0,#0x3C
 00000144  7800      LDRB        R0,[R0,#0x0]
 00000146  2803      CMP         R0,#0x3
 00000148  D004      BEQ         L_33  ; T=0x00000154
 0000014A  980A      LDR         R0,[R13,#0x28] ; parentdir
 0000014C  2801      CMP         R0,#0x1
 0000014E  D801      BHI         L_33  ; T=0x00000154
  203:         parentdir = 0;
 00000150  2000      MOV         R0,#0x0
 00000152  900A      STR         R0,[R13,#0x28] ; parentdir
  204:     } 
ARM COMPILER V2.42,  ui                                                                    27/03/06  10:45:52  PAGE 14  

 00000154          L_33:
  206:     memClr(&direntry,sizeof(direntry));
 00000154  A802      ADD         R0,R13,#0x8
 00000156  2120      MOV         R1,#0x20
 00000158  F7FF      BL          memClr?T  ; T=0x0001  (1)
 0000015A  FF52      BL          memClr?T  ; T=0x0001  (2)
  207:     memCpy("..         ",&direntry,11);
 0000015C  4800      LDR         R0,=??S_4 ; ??S_4
 0000015E  A902      ADD         R1,R13,#0x8
 00000160  220B      MOV         R2,#0xB
 00000162  F7FF      BL          memCpy?T  ; T=0x0001  (1)
 00000164  FF4D      BL          memCpy?T  ; T=0x0001  (2)
  208:     direntry.Attribute = ATTR_DIRECTORY;
 00000166  2110      MOV         R1,#0x10
 00000168  2013      MOV         R0,#0x13
 0000016A  4468      ADD         R0,R13
 0000016C  7001      STRB        R1,[R0,#0x0] ; direntry+11
  209:     direntry.FileSize = 0;
 0000016E  2000      MOV         R0,#0x0
 00000170  9009      STR         R0,[R13,#0x24] ; direntry
  210:     direntry.FirstClusterHigh=parentdir>>16;
 00000172  990A      LDR         R1,[R13,#0x28] ; parentdir
 00000174  0C09      LSR         R1,R1,#0x10
 00000176  0409      LSL         R1,R1,#0x10
 00000178  0C09      LSR         R1,R1,#0x10
 0000017A  A807      ADD         R0,R13,#0x1C
 0000017C  8001      STRH        R1,[R0,#0x0] ; direntry+20
  211:     direntry.FirstClusterLow=parentdir&0xFFFF;
 0000017E  990A      LDR         R1,[R13,#0x28] ; parentdir
 00000180  4800      LDR         R0,=0xFFFF
 00000182  4001      AND         R1,R0
 00000184  0409      LSL         R1,R1,#0x10
 00000186  0C09      LSR         R1,R1,#0x10
 00000188  2022      MOV         R0,#0x22
 0000018A  4468      ADD         R0,R13
 0000018C  8001      STRH        R1,[R0,#0x0] ; direntry+26
  212:     memCpy(&direntry,buf+32,32);
 0000018E  A802      ADD         R0,R13,#0x8
 00000190  1C31      MOV         R1,R6 ; buf
 00000192  3120      ADD         R1,#0x20
 00000194  2220      MOV         R2,#0x20
 00000196  F7FF      BL          memCpy?T  ; T=0x0001  (1)
 00000198  FF33      BL          memCpy?T  ; T=0x0001  (2)
  214:     part_relSect(fs->part,buf);
 0000019A  1C28      MOV         R0,R5 ; fs
 0000019C  6800      LDR         R0,[R0,#0x0] ; fs
 0000019E  1C31      MOV         R1,R6 ; buf
 000001A0  F7FF      BL          part_relSect?T  ; T=0x0001  (1)
 000001A2  FF2E      BL          part_relSect?T  ; T=0x0001  (2)
  216:     fat_setNextClusterAddress(fs,nc,fat_giveEocMarker(fs));
 000001A4  1C28      MOV         R0,R5 ; fs
 000001A6  F7FF      BL          fat_giveEocMarker?T  ; T=0x0001  (1)
 000001A8  FF2B      BL          fat_giveEocMarker?T  ; T=0x0001  (2)
 000001AA  1C02      MOV         R2,R0
 000001AC  1C28      MOV         R0,R5 ; fs
 000001AE  1C21      MOV         R1,R4 ; nc
 000001B0  F7FF      BL          fat_setNextClusterAddress?T  ; T=0x0001  (1)
 000001B2  FF26      BL          fat_setNextClusterAddress?T  ; T=0x0001  (2)
  218:     return(0);
 000001B4  2000      MOV         R0,#0x0
 000001B6            ; SCOPE-END
  219: }
 000001B6          L_28:
 000001B6  B00E      ADD         R13,#0x38
 000001B8  BCF0      POP         {R4-R7}
 000001BA  BC08      POP         {R3}
ARM COMPILER V2.42,  ui                                                                    27/03/06  10:45:52  PAGE 15  

 000001BC  4718      BX          R3
 000001BE          ENDP ; 'mkdir?T'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =    ------
  const size           =        80
End of Module Information.


ARM COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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