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

📄 ls.lst

📁 Philips LPC2138 Demo Application with Keil C
💻 LST
📖 第 1 页 / 共 2 页
字号:
 00000022  FFEE      BL          ls_isValidFileEntry?T  ; T=0x0001  (2)
 00000024  0600      LSL         R0,R0,#0x18 ; ls_isValidFileEntry?T
 00000026  1600      ASR         R0,R0,#0x18
 00000028  2800      CMP         R0,#0x0
 0000002A  D0EB      BEQ         L_7  ; T=0x00000004
   64:     dlist->cEntry++;
 0000002C  1C20      MOV         R0,R4 ; dlist
 0000002E  3004      ADD         R0,#0x4
 00000030  8801      LDRH        R1,[R0,#0x0]
 00000032  3101      ADD         R1,#0x1
 00000034  8001      STRH        R1,[R0,#0x0]
   65:     return(0);
 00000036  2000      MOV         R0,#0x0
   66: }
 00000038          L_12:
 00000038  BC10      POP         {R4}
 0000003A  BC08      POP         {R3}
 0000003C  4718      BX          R3
 0000003E          ENDP ; 'ls_getNext?T'


*** CODE SEGMENT '?PR?ls_getRealDirEntry?T?ls':
   69: esint8 ls_getRealDirEntry(DirList *dlist)
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  1C05      MOV         R5,R0 ; dlist
 00000004  ---- Variable 'dlist' assigned to Register 'R5' ----
   70: {
 00000004            ; SCOPE-START
   73:     if(dlist->Cache.FirstCluster<=1)return(-1);
 00000004  1C28      MOV         R0,R5 ; dlist
 00000006  6A80      LDR         R0,[R0,#0x28]
 00000008  2801      CMP         R0,#0x1
 0000000A  D801      BHI         L_13  ; T=0x00000010
 0000000C  4800      LDR         R0,=0xFFFFFFFF
 0000000E  E03E      B           L_14  ; T=0x0000008E
 00000010          L_13:
   75:     if(fat_LogicToDiscCluster(dlist->fs,
 00000010  1C28      MOV         R0,R5 ; dlist
 00000012  6803      LDR         R3,[R0,#0x0] ; dlist
 00000014  7998      LDRB        R0,[R3,#0x6]
 00000016  1C01      MOV         R1,R0
 00000018  0109      LSL         R1,R1,#0x4
 0000001A  1C28      MOV         R0,R5 ; dlist
 0000001C  88C0      LDRH        R0,[R0,#0x6]
 0000001E  F7FF      BL          ?C?SDIV?T  ; T=0x0001  (1) ; ?C?SDIV?T
 00000020  FFEF      BL          ?C?SDIV?T  ; T=0x0001  (2) ; ?C?SDIV?T
 00000022  1C08      MOV         R0,R1
 00000024  1C02      MOV         R2,R0
ARM COMPILER V2.42,  ls                                                                    27/03/06  10:45:51  PAGE 7   

 00000026  1C18      MOV         R0,R3
 00000028  1C29      MOV         R1,R5 ; dlist
 0000002A  311C      ADD         R1,#0x1C
 0000002C  F7FF      BL          fat_LogicToDiscCluster?T  ; T=0x0001  (1)
 0000002E  FFE8      BL          fat_LogicToDiscCluster?T  ; T=0x0001  (2)
 00000030  2800      CMP         R0,#0x0 ; fat_LogicToDiscCluster?T
 00000032  D001      BEQ         L_15  ; T=0x00000038
   78:         return(-1);
 00000034  4800      LDR         R0,=0xFFFFFFFF
 00000036  E02A      B           L_14  ; T=0x0000008E
   79:     }
 00000038          L_15:
   81:     buf = part_getSect(dlist->fs->part,
 00000038  1C28      MOV         R0,R5 ; dlist
 0000003A  6800      LDR         R0,[R0,#0x0] ; dlist
 0000003C  1C29      MOV         R1,R5 ; dlist
 0000003E  6A49      LDR         R1,[R1,#0x24]
 00000040  F7FF      BL          fs_clusterToSector?T  ; T=0x0001  (1)
 00000042  FFDE      BL          fs_clusterToSector?T  ; T=0x0001  (2)
 00000044  1C03      MOV         R3,R0
 00000046  1C28      MOV         R0,R5 ; dlist
 00000048  88C0      LDRH        R0,[R0,#0x6]
 0000004A  2110      MOV         R1,#0x10
 0000004C  F7FF      BL          ?C?SDIV?T  ; T=0x0001  (1) ; ?C?SDIV?T
 0000004E  FFD8      BL          ?C?SDIV?T  ; T=0x0001  (2) ; ?C?SDIV?T
 00000050  1C08      MOV         R0,R1
 00000052  1C29      MOV         R1,R5 ; dlist
 00000054  680A      LDR         R2,[R1,#0x0] ; dlist
 00000056  7991      LDRB        R1,[R2,#0x6]
 00000058  F7FF      BL          ?C?SDIV?T  ; T=0x0001  (1) ; ?C?SDIV?T
 0000005A  FFD2      BL          ?C?SDIV?T  ; T=0x0001  (2) ; ?C?SDIV?T
 0000005C  1C01      MOV         R1,R0
 0000005E  1859      ADD         R1,R3,R1 ; fs_clusterToSector?T
 00000060  6810      LDR         R0,[R2,#0x0]
 00000062  2201      MOV         R2,#0x1
 00000064  F7FF      BL          part_getSect?T  ; T=0x0001  (1)
 00000066  FFCC      BL          part_getSect?T  ; T=0x0001  (2)
 00000068  1C04      MOV         R4,R0 ; buf
 0000006A  ---- Variable 'buf' assigned to Register 'R4' ----
   86:     ls_fileEntryToDirListEntry(dlist,buf,32*(dlist->rEntry%16));
 0000006A  1C28      MOV         R0,R5 ; dlist
 0000006C  88C0      LDRH        R0,[R0,#0x6]
 0000006E  2110      MOV         R1,#0x10
 00000070  F7FF      BL          ?C?SDIV?T  ; T=0x0001  (1) ; ?C?SDIV?T
 00000072  FFC6      BL          ?C?SDIV?T  ; T=0x0001  (2) ; ?C?SDIV?T
 00000074  1C01      MOV         R1,R0
 00000076  014A      LSL         R2,R1,#0x5
 00000078  1C28      MOV         R0,R5 ; dlist
 0000007A  1C21      MOV         R1,R4 ; buf
 0000007C  F7FF      BL          ls_fileEntryToDirListEntry?T  ; T=0x0001  (1)
 0000007E  FFC0      BL          ls_fileEntryToDirListEntry?T  ; T=0x0001  (2)
   88:     part_relSect(dlist->fs->part,buf);
 00000080  1C28      MOV         R0,R5 ; dlist
 00000082  6800      LDR         R0,[R0,#0x0] ; dlist
 00000084  6800      LDR         R0,[R0,#0x0]
 00000086  1C21      MOV         R1,R4 ; buf
 00000088  F7FF      BL          part_relSect?T  ; T=0x0001  (1)
 0000008A  FFBA      BL          part_relSect?T  ; T=0x0001  (2)
   90:     return(0);
 0000008C  2000      MOV         R0,#0x0
 0000008E            ; SCOPE-END
   91: }
 0000008E          L_14:
 0000008E  BC30      POP         {R4-R5}
 00000090  BC08      POP         {R3}
 00000092  4718      BX          R3
ARM COMPILER V2.42,  ls                                                                    27/03/06  10:45:51  PAGE 8   

 00000094          ENDP ; 'ls_getRealDirEntry?T'


*** CODE SEGMENT '?PR?ls_getRootAreaEntry?T?ls':
   94: esint8 ls_getRootAreaEntry(DirList *dlist)
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  1C05      MOV         R5,R0 ; dlist
 00000004  ---- Variable 'dlist' assigned to Register 'R5' ----
   95: {
 00000004            ; SCOPE-START
   96:     euint8 *buf=0;
 00000004  2400      MOV         R4,#0x0
 00000006  ---- Variable 'buf' assigned to Register 'R4' ----
   98:     if((dlist->fs->type != FAT12) && (dlist->fs->type != FAT16))return(-1);
 00000006  1C28      MOV         R0,R5 ; dlist
 00000008  6801      LDR         R1,[R0,#0x0] ; dlist
 0000000A  1C08      MOV         R0,R1
 0000000C  303C      ADD         R0,#0x3C
 0000000E  7800      LDRB        R0,[R0,#0x0]
 00000010  2801      CMP         R0,#0x1
 00000012  D003      BEQ         L_16  ; T=0x0000001C
 00000014  2802      CMP         R0,#0x2
 00000016  D001      BEQ         L_16  ; T=0x0000001C
 00000018  4800      LDR         R0,=0xFFFFFFFF
 0000001A  E02B      B           L_17  ; T=0x00000074
 0000001C          L_16:
   99:     if(dlist->rEntry>=dlist->fs->volumeId.RootEntryCount)return(-1);
 0000001C  8988      LDRH        R0,[R1,#0xC]
 0000001E  1C02      MOV         R2,R0
 00000020  1C28      MOV         R0,R5 ; dlist
 00000022  88C1      LDRH        R1,[R0,#0x6]
 00000024  1C08      MOV         R0,R1
 00000026  4290      CMP         R0,R2
 00000028  D301      BCC         L_18  ; T=0x0000002E
 0000002A  4800      LDR         R0,=0xFFFFFFFF
 0000002C  E022      B           L_17  ; T=0x00000074
 0000002E          L_18:
  101:     buf = part_getSect(dlist->fs->part,
 0000002E  1C08      MOV         R0,R1
 00000030  2110      MOV         R1,#0x10
 00000032  F7FF      BL          ?C?SDIV?T  ; T=0x0001  (1) ; ?C?SDIV?T
 00000034  FFE5      BL          ?C?SDIV?T  ; T=0x0001  (2) ; ?C?SDIV?T
 00000036  1C08      MOV         R0,R1
 00000038  1C02      MOV         R2,R0
 0000003A  1C28      MOV         R0,R5 ; dlist
 0000003C  6800      LDR         R0,[R0,#0x0] ; dlist
 0000003E  6AC1      LDR         R1,[R0,#0x2C]
 00000040  1889      ADD         R1,R2
 00000042  1C28      MOV         R0,R5 ; dlist
 00000044  6800      LDR         R0,[R0,#0x0] ; dlist
 00000046  6800      LDR         R0,[R0,#0x0]
 00000048  2201      MOV         R2,#0x1
 0000004A  F7FF      BL          part_getSect?T  ; T=0x0001  (1)
 0000004C  FFD9      BL          part_getSect?T  ; T=0x0001  (2)
 0000004E  1C04      MOV         R4,R0 ; buf
  105:     ls_fileEntryToDirListEntry(dlist,buf,32*(dlist->rEntry%16));
 00000050  1C28      MOV         R0,R5 ; dlist
 00000052  88C0      LDRH        R0,[R0,#0x6]
 00000054  2110      MOV         R1,#0x10
 00000056  F7FF      BL          ?C?SDIV?T  ; T=0x0001  (1) ; ?C?SDIV?T
 00000058  FFD3      BL          ?C?SDIV?T  ; T=0x0001  (2) ; ?C?SDIV?T
 0000005A  1C01      MOV         R1,R0
 0000005C  014A      LSL         R2,R1,#0x5
 0000005E  1C28      MOV         R0,R5 ; dlist
 00000060  1C21      MOV         R1,R4 ; buf
 00000062  F7FF      BL          ls_fileEntryToDirListEntry?T  ; T=0x0001  (1)
 00000064  FFCD      BL          ls_fileEntryToDirListEntry?T  ; T=0x0001  (2)
  106:     part_relSect(dlist->fs->part,buf);
ARM COMPILER V2.42,  ls                                                                    27/03/06  10:45:51  PAGE 9   

 00000066  1C28      MOV         R0,R5 ; dlist
 00000068  6800      LDR         R0,[R0,#0x0] ; dlist
 0000006A  6800      LDR         R0,[R0,#0x0]
 0000006C  1C21      MOV         R1,R4 ; buf
 0000006E  F7FF      BL          part_relSect?T  ; T=0x0001  (1)
 00000070  FFC7      BL          part_relSect?T  ; T=0x0001  (2)
  107:     return(0);
 00000072  2000      MOV         R0,#0x0
 00000074            ; SCOPE-END
  108: }
 00000074          L_17:
 00000074  BC30      POP         {R4-R5}
 00000076  BC08      POP         {R3}
 00000078  4718      BX          R3
 0000007A          ENDP ; 'ls_getRootAreaEntry?T'


*** CODE SEGMENT '?PR?ls_isValidFileEntry?T?ls':
  111: esint8 ls_isValidFileEntry(ListDirEntry *entry)
 00000000  1C01      MOV         R1,R0 ; entry
 00000002  ---- Variable 'entry' assigned to Register 'R1' ----
  113:     if(entry->FileName[0] == 0 || entry->FileName[0] == 0xE5 || entry->FileName[0] == '.')return(0);
 00000002  1C08      MOV         R0,R1 ; entry
 00000004  7800      LDRB        R0,[R0,#0x0] ; entry
 00000006  2800      CMP         R0,#0x0
 00000008  D003      BEQ         L_20  ; T=0x00000012
 0000000A  28E5      CMP         R0,#0xE5
 0000000C  D001      BEQ         L_20  ; T=0x00000012
 0000000E  282E      CMP         R0,#0x2E
 00000010  D101      BNE         L_19  ; T=0x00000016
 00000012          L_20:
 00000012  2000      MOV         R0,#0x0
 00000014  E008      B           L_21  ; T=0x00000028
 00000016          L_19:
  114:     if((entry->Attribute&0x0F)==0x0F)return(0);
 00000016  1C08      MOV         R0,R1 ; entry
 00000018  7C00      LDRB        R0,[R0,#0x10]
 0000001A  210F      MOV         R1,#0xF
 0000001C  4008      AND         R0,R1
 0000001E  280F      CMP         R0,#0xF
 00000020  D101      BNE         L_22  ; T=0x00000026
 00000022  2000      MOV         R0,#0x0
 00000024  E000      B           L_21  ; T=0x00000028
 00000026          L_22:
  115:      return(1);
 00000026  2001      MOV         R0,#0x1
  116: }
 00000028          L_21:
 00000028  4770      BX          R14
 0000002A          ENDP ; 'ls_isValidFileEntry?T'


*** CODE SEGMENT '?PR?ls_fileEntryToDirListEntry?T?ls':
  119: void ls_fileEntryToDirListEntry(DirList *dlist, euint8* buf, euint16 offset)
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  ---- Variable 'offset' assigned to Register 'R2' ----
 00000002  1C0D      MOV         R5,R1 ; buf
 00000004  ---- Variable 'buf' assigned to Register 'R5' ----
 00000004  1C04      MOV         R4,R0 ; dlist
 00000006  ---- Variable 'dlist' assigned to Register 'R4' ----
  121:     if(offset>480 || offset%32)return;
 00000006  1C10      MOV         R0,R2 ; offset
 00000008  0400      LSL         R0,R0,#0x10 ; offset
 0000000A  0C00      LSR         R0,R0,#0x10
 0000000C  4978      LDR         R1,=0x1E0
 0000000E  4288      CMP         R0,R1
 00000010  D81C      BHI         L_25  ; T=0x0000004C
 00000012  1C10      MOV         R0,R2 ; offset
 00000014  0400      LSL         R0,R0,#0x10 ; offset
 00000016  0C00      LSR         R0,R0,#0x10
ARM COMPILER V2.42,  ls                                                                    27/03/06  10:45:51  PAGE 10  

 00000018  2120      MOV         R1,#0x20
 0000001A  F7FF      BL          ?C?SDIV?T  ; T=0x0001  (1) ; ?C?SDIV?T
 0000001C  FFF1      BL          ?C?SDIV?T  ; T=0x0001  (2) ; ?C?SDIV?T
 0000001E  1C01      MOV         R1,R0
 00000020  2900      CMP         R1,#0x0
 00000022  D113      BNE         L_25  ; T=0x0000004C
  123:     buf+=offset;
 00000024  1C10      MOV         R0,R2 ; offset
 00000026  0400      LSL         R0,R0,#0x10 ; offset
 00000028  0C00      LSR         R0,R0,#0x10
 0000002A  182D      ADD         R5,R0 ; buf
  124:     memCpy(buf+OFFSET_DE_FILENAME,dlist->currentEntry.FileName,LIST_MAXLENFILENAME);
 0000002C  1C28      MOV         R0,R5 ; buf
 0000002E  1C21      MOV         R1,R4 ; dlist
 00000030  3108      ADD         R1,#0x8
 00000032  220C      MOV         R2,#0xC
 00000034  F7FF      BL          memCpy?T  ; T=0x0001  (1)
 00000036  FFE4      BL          memCpy?T  ; T=0x0001  (2)
  125:     dlist->currentEntry.Attribute = *(buf+OFFSET_DE_ATTRIBUTE);
 00000038  1C28      MOV         R0,R5 ; buf
 0000003A  7AC1      LDRB        R1,[R0,#0xB]
 0000003C  1C20      MOV         R0,R4 ; dlist
 0000003E  7601      STRB        R1,[R0,#0x18]
  126:     dlist->currentEntry.FileSize = ex_getb32(buf,OFFSET_DE_FILESIZE);
 00000040  1C28      MOV         R0,R5 ; buf
 00000042  211C      MOV         R1,#0x1C
 00000044  F7FF      BL          ex_getb32?T  ; T=0x0001  (1)
 00000046  FFDC      BL          ex_getb32?T  ; T=0x0001  (2)
 00000048  1C21      MOV         R1,R4 ; dlist
 0000004A  6148      STR         R0,[R1,#0x14]
  127: }
 0000004C          L_25:
 0000004C  BC30      POP         {R4-R5}
 0000004E  BC08      POP         {R3}
 00000050  4718      BX          R3
 00000052          ENDP ; 'ls_fileEntryToDirListEntry?T'



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


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

⌨️ 快捷键说明

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