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

📄 ui.lst

📁 Philips LPC2138 Demo Application with Keil C
💻 LST
📖 第 1 页 / 共 3 页
字号:
 00000028  2801      CMP         R0,#0x1
 0000002A  D002      BEQ         L_8  ; T=0x00000032
 0000002C  2802      CMP         R0,#0x2
 0000002E  D000      BNE         $+4
 00000030  E08C      B           L_9  ; T=0x0000014C
   54:             for(i=0;i<=(fs->volumeId.RootEntryCount/16);i++)
 00000034          L_8:
 00000034  2700      MOV         R7,#0x0
 00000036  ---- Variable 'i' assigned to Register 'R7' ----
 00000036  E00E      B           L_6  ; T=0x00000056
 00000038          L_7:
   56:                 loc.Sector=fs->FirstSectorRootDir + i;
 00000038  1C28      MOV         R0,R5 ; fs
 0000003A  6AC0      LDR         R0,[R0,#0x2C]
 0000003C  1C39      MOV         R1,R7 ; i
 0000003E  0409      LSL         R1,R1,#0x10 ; i
 00000040  0C09      LSR         R1,R1,#0x10
 00000042  1840      ADD         R0,R1
 00000044  9009      STR         R0,[R13,#0x24] ; loc
   57:                 part_readBuf(fs->part,loc.Sector,buf);
 00000046  1C28      MOV         R0,R5 ; fs
 00000048  6800      LDR         R0,[R0,#0x0] ; fs
 0000004A  9909      LDR         R1,[R13,#0x24] ; loc
 0000004C  AA0B      ADD         R2,R13,#0x2C
 0000004E  F7FF      BL          part_readBuf?T  ; T=0x0001  (1)
 00000050  FFD7      BL          part_readBuf?T  ; T=0x0001  (2)
   60:             }
 00000052  3701      ADD         R7,#0x1
 00000054  043F      LSL         R7,R7,#0x10
 00000056  0C3F      LSR         R7,R7,#0x10
 00000058          L_6:
 00000058  1C28      MOV         R0,R5 ; fs
 0000005A  8980      LDRH        R0,[R0,#0xC]
 0000005C  2110      MOV         R1,#0x10
 0000005E  F7FF      BL          ?C?SDIV?T  ; T=0x0001  (1) ; ?C?SDIV?T
 00000060  FFCF      BL          ?C?SDIV?T  ; T=0x0001  (2) ; ?C?SDIV?T
 00000062  1C08      MOV         R0,R1
 00000064  1C39      MOV         R1,R7 ; i
 00000066  0409      LSL         R1,R1,#0x10 ; i
 00000068  0C09      LSR         R1,R1,#0x10
 0000006A  4281      CMP         R1,R0
 0000006C  D9E4      BLS         L_7  ; T=0x00000038
   62:     }
 0000006E  E06D      B           L_9  ; T=0x0000014C
 00000070          L_1:
   66:         if(fs_findFile(fs,dirname,&loc,0)!=2)
 00000070  1C28      MOV         R0,R5 ; fs
 00000072  1C31      MOV         R1,R6 ; dirname
 00000074  AA09      ADD         R2,R13,#0x24
 00000076  2300      MOV         R3,#0x0
 00000078  F7FF      BL          fs_findFile?T  ; T=0x0001  (1)
 0000007A  FFC2      BL          fs_findFile?T  ; T=0x0001  (2)
 0000007C  0600      LSL         R0,R0,#0x18 ; fs_findFile?T
 0000007E  1600      ASR         R0,R0,#0x18
 00000080  2802      CMP         R0,#0x2
 00000082  D000      BEQ         L_10  ; T=0x00000086
   69:             return(-1);
 00000084  4800      LDR         R0,=0xFFFFFFFF
 00000086  E063      B           L_11  ; T=0x00000150
   70:         }
 00000088          L_10:
   73:         part_readBuf(fs->part,loc.Sector, buf);
ARM COMPILER V2.42,  ui                                                                    27/03/06  10:45:52  PAGE 7   

 00000088  1C28      MOV         R0,R5 ; fs
 0000008A  6800      LDR         R0,[R0,#0x0] ; fs
 0000008C  9909      LDR         R1,[R13,#0x24] ; loc
 0000008E  AA0B      ADD         R2,R13,#0x2C
 00000090  F7FF      BL          part_readBuf?T  ; T=0x0001  (1)
 00000092  FFB6      BL          part_readBuf?T  ; T=0x0001  (2)
   74:         fileEntry = *(((FileRecord*)buf) + loc.Offset);
 00000094  A80A      ADD         R0,R13,#0x28
 00000096  7800      LDRB        R0,[R0,#0x0] ; loc+4
 00000098  0140      LSL         R0,R0,#0x5
 0000009A  A90B      ADD         R1,R13,#0x2C
 0000009C  1809      ADD         R1,R0 ; buf
 0000009E  A801      ADD         R0,R13,#0x4
 000000A0  2208      MOV         R2,#0x8
 000000A2          L_36:
 000000A2  C908      LDMIA       R1!,{R3}
 000000A4  C008      STMIA       R0!,{R3}
 000000A6  1E52      SUB         R2,R2,#0x1
 000000A8  D1FB      BNE         L_36  ; T=0x000000A2
   75:         startCluster = (((unsigned long)fileEntry.FirstClusterHigh)<<16) 
 000000AA  A806      ADD         R0,R13,#0x18
 000000AC  8800      LDRH        R0,[R0,#0x0] ; fileEntry+20
 000000AE  1C01      MOV         R1,R0
 000000B0  0409      LSL         R1,R1,#0x10
 000000B2  201E      MOV         R0,#0x1E
 000000B4  4468      ADD         R0,R13
 000000B6  8800      LDRH        R0,[R0,#0x0] ; fileEntry+26
 000000B8  1809      ADD         R1,R0
 000000BA  ---- Variable 'startCluster' assigned to Register 'R1' ----
   79:         dir.fs=fs;
 000000BA  1C28      MOV         R0,R5 ; fs
 000000BC  9095      STR         R0,[R13,#0x254] ; dir
   80:         dir.Cache.LogicCluster=-1;
 000000BE  4800      LDR         R0,=0xFFFFFFFF
 000000C0  9097      STR         R0,[R13,#0x25C] ; dir
   81:         dir.Cache.FirstCluster=startCluster;
 000000C2  1C08      MOV         R0,R1 ; startCluster
 000000C4  9099      STR         R0,[R13,#0x264] ; dir
   82:         dir.DirEntry.Attribute=ATTR_DIRECTORY;
 000000C6  2110      MOV         R1,#0x10
 000000C8  4800      LDR         R0,=0x237
 000000CA  4468      ADD         R0,R13
 000000CC  7001      STRB        R1,[R0,#0x0] ; dir+11
   84:         while((file_fread(&dir,offset,512,buf)))
 000000CE  E035      B           L_12  ; T=0x0000013C
 000000D0          L_14:
   86:             DBG((TXT("Read 512 bytes from dir with offset %li.\n"),offset));
 000000D0  4800      LDR         R0,=??S_1 ; ??S_1
 000000D2  1C21      MOV         R1,R4 ; offset
 000000D4  F7FF      BL          lpc2000_debug_printf?T  ; T=0x0001  (1)
 000000D6  FF94      BL          lpc2000_debug_printf?T  ; T=0x0001  (2)
   87:             for(fileEntryCount=0;fileEntryCount<16;fileEntryCount++)
 000000D8  2500      MOV         R5,#0x0
 000000DA  ---- Variable 'fileEntryCount' assigned to Register 'R5' ----
 000000DA  E028      B           L_18  ; T=0x0000012E
 000000DC          L_19:
   89:                 fileEntry = *(((FileRecord*)buf) + fileEntryCount);
 000000DC  1C28      MOV         R0,R5 ; fileEntryCount
 000000DE  0600      LSL         R0,R0,#0x18 ; fileEntryCount
 000000E0  0E00      LSR         R0,R0,#0x18
 000000E2  0140      LSL         R0,R0,#0x5
 000000E4  A90B      ADD         R1,R13,#0x2C
 000000E6  1809      ADD         R1,R0 ; buf
 000000E8  A801      ADD         R0,R13,#0x4
 000000EA  2208      MOV         R2,#0x8
 000000EC          L_37:
ARM COMPILER V2.42,  ui                                                                    27/03/06  10:45:52  PAGE 8   

 000000EC  C908      LDMIA       R1!,{R3}
 000000EE  C008      STMIA       R0!,{R3}
 000000F0  1E52      SUB         R2,R2,#0x1
 000000F2  D1FB      BNE         L_37  ; T=0x000000EC
   90:                 if( !( (fileEntry.Attribute & 0x0F) == 0x0F ) )
 000000F4  200F      MOV         R0,#0xF
 000000F6  4468      ADD         R0,R13
 000000F8  7800      LDRB        R0,[R0,#0x0] ; fileEntry+11
 000000FA  210F      MOV         R1,#0xF
 000000FC  4008      AND         R0,R1
 000000FE  280F      CMP         R0,#0xF
 00000100  D012      BEQ         L_16  ; T=0x00000128
   92:                     if
 00000102  A901      ADD         R1,R13,#0x4
 00000104  7808      LDRB        R0,[R1,#0x0] ; fileEntry
 00000106  2841      CMP         R0,#0x41
 00000108  DB01      BLT         L_24  ; T=0x0000010E
 0000010A  7808      LDRB        R0,[R1,#0x0] ; fileEntry
 0000010C  285A      CMP         R0,#0x5A
 0000010E  DD04      BLE         L_23  ; T=0x0000011A
 00000110          L_24:
 00000110  7808      LDRB        R0,[R1,#0x0] ; fileEntry
 00000112  2830      CMP         R0,#0x30
 00000114  DB08      BLT         L_16  ; T=0x00000128
 00000116  7808      LDRB        R0,[R1,#0x0] ; fileEntry
 00000118  2839      CMP         R0,#0x39
 0000011A  DC05      BGT         L_16  ; T=0x00000128
 0000011C          L_23:
   99:                         DBG((TXT("Filename: %s\n"),fileEntry.FileName));
 0000011C  4800      LDR         R0,=??S_2 ; ??S_2
 0000011E  F7FF      BL          lpc2000_debug_printf?T  ; T=0x0001  (1)
 00000120  FF6F      BL          lpc2000_debug_printf?T  ; T=0x0001  (2)
  100:                         counter++;
 00000122  A800      ADD         R0,R13,#0x0
 00000124  8801      LDRH        R1,[R0,#0x0] ; counter
 00000126  3101      ADD         R1,#0x1
 00000128  8001      STRH        R1,[R0,#0x0] ; counter
  103:             }
 0000012A          L_16:
 0000012A  3501      ADD         R5,#0x1
 0000012C  062D      LSL         R5,R5,#0x18
 0000012E  0E2D      LSR         R5,R5,#0x18
 00000130          L_18:
 00000130  1C28      MOV         R0,R5 ; fileEntryCount
 00000132  0600      LSL         R0,R0,#0x18 ; fileEntryCount
 00000134  0E00      LSR         R0,R0,#0x18
 00000136  2810      CMP         R0,#0x10
 00000138  DBD0      BLT         L_19  ; T=0x000000DC
  104:             offset+=512;
 0000013A  4880      LDR         R0,=0x200
 0000013C  1824      ADD         R4,R0 ; offset
  105:         }
 0000013E          L_12:
 0000013E  A88B      ADD         R0,R13,#0x22C
 00000140  1C21      MOV         R1,R4 ; offset
 00000142  AB0B      ADD         R3,R13,#0x2C
 00000144  4A80      LDR         R2,=0x200
 00000146  F7FF      BL          file_fread?T  ; T=0x0001  (1)
 00000148  FF5B      BL          file_fread?T  ; T=0x0001  (2)
 0000014A  2800      CMP         R0,#0x0 ; file_fread?T
 0000014C  D1C0      BNE         L_14  ; T=0x000000D0
  106:     }
 0000014E          L_9:
  109:     return(counter);
 0000014E  A800      ADD         R0,R13,#0x0
 00000150  8800      LDRH        R0,[R0,#0x0] ; counter
ARM COMPILER V2.42,  ui                                                                    27/03/06  10:45:52  PAGE 9   

  111:     return(-1);
 00000152            ; SCOPE-END
  112: }
 00000152          L_11:
 00000152  499F      LDR         R1,=0x27C
 00000154  448D      ADD         R13,R13,R1
 00000156  BCF0      POP         {R4-R7}
 00000158  BC08      POP         {R3}
 0000015A  4718      BX          R3
 0000015C          ENDP ; 'listFiles?T'


*** CODE SEGMENT '?PR?rmfile?T?ui':
  121: esint16 rmfile(FileSystem *fs,euint8* filename)
 00000000  B570      PUSH        {R4-R6,LR}
 00000002  1C0A      MOV         R2,R1 ; filename
 00000004  ---- Variable 'filename' assigned to Register 'R2' ----
 00000004  1C04      MOV         R4,R0 ; fs
 00000006  ---- Variable 'fs' assigned to Register 'R4' ----
 00000006  B088      SUB         R13,#0x20
  122: {
 00000008            ; SCOPE-START
  126:     euint32 firstCluster=0;
 00000008  2500      MOV         R5,#0x0
 0000000A  ---- Variable 'firstCluster' assigned to Register 'R5' ----
  128:     if((fs_findFile(fs,(eint8*)filename,&loc,0))==1){
 0000000A  1C20      MOV         R0,R4 ; fs
 0000000C  1C11      MOV         R1,R2 ; filename
 0000000E  AA00      ADD         R2,R13,#0x0
 00000010  2300      MOV         R3,#0x0
 00000012  F7FF      BL          fs_findFile?T  ; T=0x0001  (1)
 00000014  FFF5      BL          fs_findFile?T  ; T=0x0001  (2)
 00000016  0600      LSL         R0,R0,#0x18 ; fs_findFile?T
 00000018  1600      ASR         R0,R0,#0x18
 0000001A  2801      CMP         R0,#0x1
 0000001C  D139      BNE         L_25  ; T=0x00000092
  129:         buf=part_getSect(fs->part,loc.Sector,IOM_MODE_READWRITE);
 0000001E  1C20      MOV         R0,R4 ; fs
 00000020  6800      LDR         R0,[R0,#0x0] ; fs
 00000022  9900      LDR         R1,[R13,#0x0] ; loc
 00000024  2202      MOV         R2,#0x2
 00000026  F7FF      BL          part_getSect?T  ; T=0x0001  (1)
 00000028  FFEB      BL          part_getSect?T  ; T=0x0001  (2)
 0000002A  1C06      MOV         R6,R0 ; buf
 0000002C  ---- Variable 'buf' assigned to Register 'R6' ----
  130:         firstCluster = ex_getb16(buf,loc.Offset*32+20);
 0000002C  A801      ADD         R0,R13,#0x4
 0000002E  7800      LDRB        R0,[R0,#0x0] ; loc+4
 00000030  1C01      MOV         R1,R0
 00000032  0149      LSL         R1,R1,#0x5
 00000034  3114      ADD         R1,#0x14
 00000036  1C30      MOV         R0,R6 ; buf
 00000038  F7FF      BL          ex_getb16?T  ; T=0x0001  (1)
 0000003A  FFE2      BL          ex_getb16?T  ; T=0x0001  (2)
 0000003C  0405      LSL         R5,R0,#0x10 ; ex_getb16?T
 0000003E  0C2D      LSR         R5,R5,#0x10
  131:         firstCluster <<= 16;
 00000040  042D      LSL         R5,R5,#0x10 ; firstCluster
  132:         firstCluster += ex_getb16(buf,loc.Offset*32+26);
 00000042  A801      ADD         R0,R13,#0x4
 00000044  7800      LDRB        R0,[R0,#0x0] ; loc+4
 00000046  1C01      MOV         R1,R0
 00000048  0149      LSL         R1,R1,#0x5
 0000004A  311A      ADD         R1,#0x1A
 0000004C  1C30      MOV         R0,R6 ; buf
 0000004E  F7FF      BL          ex_getb16?T  ; T=0x0001  (1)
 00000050  FFD7      BL          ex_getb16?T  ; T=0x0001  (2)
 00000052  0400      LSL         R0,R0,#0x10 ; ex_getb16?T
ARM COMPILER V2.42,  ui                                                                    27/03/06  10:45:52  PAGE 10  

 00000054  0C00      LSR         R0,R0,#0x10
 00000056  182D      ADD         R5,R0 ; firstCluster
  138:         *(buf+(loc.Offset*32)+0) = 0xE5; /* Mark file deleted */
 00000058  20E5      MOV         R0,#0xE5
 0000005A  A901      ADD         R1,R13,#0x4
 0000005C  7809      LDRB        R1,[R1,#0x0] ; loc+4
 0000005E  1C0A      MOV         R2,R1
 00000060  0152      LSL         R2,R2,#0x5
 00000062  1C31      MOV         R1,R6 ; buf
 00000064  5488      STRB        R0,[R1,R2]
  139:         part_relSect(fs->part,buf);
 00000066  1C20      MOV         R0,R4 ; fs
 00000068  6800      LDR         R0,[R0,#0x0] ; fs
 0000006A  1C31      MOV         R1,R6 ; buf
 0000006C  F7FF      BL          part_relSect?T  ; T=0x0001  (1)
 0000006E  FFC8      BL          part_relSect?T  ; T=0x0001  (2)
  140:         cache.DiscCluster = cache.LastCluster = cache.Linear = cache.LogicCluster = 0;
 00000070  2000      MOV         R0,#0x0
 00000072  9003      STR         R0,[R13,#0xC] ; cache
 00000074  2100      MOV         R1,#0x0
 00000076  A802      ADD         R0,R13,#0x8
 00000078  7001      STRB        R1,[R0,#0x0] ; cache
 0000007A  2000      MOV         R0,#0x0
 0000007C  9006      STR         R0,[R13,#0x18] ; cache
 0000007E  2000      MOV         R0,#0x0
 00000080  9004      STR         R0,[R13,#0x10] ; cache
  141:         cache.FirstCluster = firstCluster;
 00000082  1C28      MOV         R0,R5 ; firstCluster
 00000084  9005      STR         R0,[R13,#0x14] ; cache
  142:          fat_unlinkClusterChain(fs,&cache);
 00000086  1C20      MOV         R0,R4 ; fs
 00000088  A902      ADD         R1,R13,#0x8
 0000008A  F7FF      BL          fat_unlinkClusterChain?T  ; T=0x0001  (1)
 0000008C  FFB9      BL          fat_unlinkClusterChain?T  ; T=0x0001  (2)
  143:         return(0);
 0000008E  2000      MOV         R0,#0x0
 00000090  E000      B           L_26  ; T=0x00000094
  144:     }
 00000092          L_25:
  145:     return(-1);
 00000092  4800      LDR         R0,=0xFFFFFFFF
 00000094            ; SCOPE-END
  146: }
 00000094          L_26:

⌨️ 快捷键说明

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