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

📄 partition.lst

📁 Philips LPC2138 Demo Application with Keil C
💻 LST
📖 第 1 页 / 共 2 页
字号:
 0000002E  0E00      LSR         R0,R0,#0x18
 00000030  285C      CMP         R0,#0x5C
 00000032  D004      BEQ         L_8  ; T=0x0000003E
 00000034  1C08      MOV         R0,R1 ; type
 00000036  0600      LSL         R0,R0,#0x18 ; type
 00000038  0E00      LSR         R0,R0,#0x18
 0000003A  285E      CMP         R0,#0x5E
 0000003C  D101      BNE         L_7  ; T=0x00000042
 0000003E          L_8:
   62:         return(1);
 0000003E  2001      MOV         R0,#0x1
 00000040  E000      B           L_9  ; T=0x00000044
   63:     }
 00000042          L_7:
   64:     return(0);
 00000042  2000      MOV         R0,#0x0
   65: }
 00000044          L_9:
 00000044  4770      BX          R14
 00000046          ENDP ; 'part_isFatPart?T'


*** CODE SEGMENT '?PR?part_readBuf?T?partition':
   68: esint8 part_readBuf(Partition *part, euint32 address, euint8* buf)
 00000000  B530      PUSH        {R4-R5,LR}
ARM COMPILER V2.42,  partition                                                             27/03/06  10:45:51  PAGE 6   

 00000002  1C14      MOV         R4,R2 ; buf
 00000004  ---- Variable 'buf' assigned to Register 'R4' ----
 00000004  1C0A      MOV         R2,R1 ; address
 00000006  ---- Variable 'address' assigned to Register 'R2' ----
 00000006  1C05      MOV         R5,R0 ; part
 00000008  ---- Variable 'part' assigned to Register 'R5' ----
   70:     return(if_readBuf(part->disc->ioman->iface,part_getRealLBA(part,address), buf));
 00000008  1C28      MOV         R0,R5 ; part
 0000000A  1C11      MOV         R1,R2 ; address
 0000000C  F7FF      BL          part_getRealLBA?T  ; T=0x0001  (1)
 0000000E  FFF8      BL          part_getRealLBA?T  ; T=0x0001  (2)
 00000010  1C01      MOV         R1,R0
 00000012  1C28      MOV         R0,R5 ; part
 00000014  6800      LDR         R0,[R0,#0x0] ; part
 00000016  6800      LDR         R0,[R0,#0x0]
 00000018  6800      LDR         R0,[R0,#0x0]
 0000001A  1C22      MOV         R2,R4 ; buf
 0000001C  F7FF      BL          if_readBuf?T  ; T=0x0001  (1)
 0000001E  FFF0      BL          if_readBuf?T  ; T=0x0001  (2)
 00000020  0600      LSL         R0,R0,#0x18 ; if_readBuf?T
 00000022  1600      ASR         R0,R0,#0x18
   71: }
 00000024  BC30      POP         {R4-R5}
 00000026  BC08      POP         {R3}
 00000028  4718      BX          R3
 0000002A          ENDP ; 'part_readBuf?T'


*** CODE SEGMENT '?PR?part_writeBuf?T?partition':
   79: eint16 part_writeBuf(Partition *part,euint32 address,euint8* buf)
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  1C14      MOV         R4,R2 ; buf
 00000004  ---- Variable 'buf' assigned to Register 'R4' ----
 00000004  1C0A      MOV         R2,R1 ; address
 00000006  ---- Variable 'address' assigned to Register 'R2' ----
 00000006  1C05      MOV         R5,R0 ; part
 00000008  ---- Variable 'part' assigned to Register 'R5' ----
   82:     return(if_writeBuf(part->disc->ioman->iface,part_getRealLBA(part,address),buf));
 00000008  1C28      MOV         R0,R5 ; part
 0000000A  1C11      MOV         R1,R2 ; address
 0000000C  F7FF      BL          part_getRealLBA?T  ; T=0x0001  (1)
 0000000E  FFF8      BL          part_getRealLBA?T  ; T=0x0001  (2)
 00000010  1C01      MOV         R1,R0
 00000012  1C28      MOV         R0,R5 ; part
 00000014  6800      LDR         R0,[R0,#0x0] ; part
 00000016  6800      LDR         R0,[R0,#0x0]
 00000018  6800      LDR         R0,[R0,#0x0]
 0000001A  1C22      MOV         R2,R4 ; buf
 0000001C  F7FF      BL          if_writeBuf?T  ; T=0x0001  (1)
 0000001E  FFF0      BL          if_writeBuf?T  ; T=0x0001  (2)
 00000020  0600      LSL         R0,R0,#0x18 ; if_writeBuf?T
 00000022  1600      ASR         R0,R0,#0x18
   83: }
 00000024  BC30      POP         {R4-R5}
 00000026  BC08      POP         {R3}
 00000028  4718      BX          R3
 0000002A          ENDP ; 'part_writeBuf?T'


*** CODE SEGMENT '?PR?part_getRealLBA?T?partition':
   93: euint32 part_getRealLBA(Partition *part,euint32 address)
 00000000  1C0A      MOV         R2,R1 ; address
 00000002  ---- Variable 'address' assigned to Register 'R2' ----
 00000002  1C03      MOV         R3,R0 ; part
 00000004  ---- Variable 'part' assigned to Register 'R3' ----
   95:     return(part->disc->partitions[part->activePartition].LBA_begin+address);
 00000004  1C18      MOV         R0,R3 ; part
 00000006  7900      LDRB        R0,[R0,#0x4]
 00000008  0600      LSL         R0,R0,#0x18
 0000000A  1600      ASR         R0,R0,#0x18
ARM COMPILER V2.42,  partition                                                             27/03/06  10:45:51  PAGE 7   

 0000000C  1C01      MOV         R1,R0
 0000000E  0109      LSL         R1,R1,#0x4
 00000010  1C18      MOV         R0,R3 ; part
 00000012  6800      LDR         R0,[R0,#0x0] ; part
 00000014  1840      ADD         R0,R1
 00000016  6900      LDR         R0,[R0,#0x10]
 00000018  1C11      MOV         R1,R2 ; address
 0000001A  1840      ADD         R0,R1 ; address
   96: }
 0000001C  4770      BX          R14
 0000001E          ENDP ; 'part_getRealLBA?T'


*** CODE SEGMENT '?PR?part_getSect?T?partition':
  105: euint8* part_getSect(Partition *part, euint32 address, euint8 mode)
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  1C14      MOV         R4,R2 ; mode
 00000004  ---- Variable 'mode' assigned to Register 'R4' ----
 00000004  1C0A      MOV         R2,R1 ; address
 00000006  ---- Variable 'address' assigned to Register 'R2' ----
 00000006  1C05      MOV         R5,R0 ; part
 00000008  ---- Variable 'part' assigned to Register 'R5' ----
  107:     return(ioman_getSector(part->disc->ioman,part_getRealLBA(part,address),mode));
 00000008  1C28      MOV         R0,R5 ; part
 0000000A  1C11      MOV         R1,R2 ; address
 0000000C  F7FF      BL          part_getRealLBA?T  ; T=0x0001  (1)
 0000000E  FFF8      BL          part_getRealLBA?T  ; T=0x0001  (2)
 00000010  1C01      MOV         R1,R0
 00000012  1C28      MOV         R0,R5 ; part
 00000014  6800      LDR         R0,[R0,#0x0] ; part
 00000016  6800      LDR         R0,[R0,#0x0]
 00000018  1C22      MOV         R2,R4 ; mode
 0000001A  0612      LSL         R2,R2,#0x18 ; mode
 0000001C  0E12      LSR         R2,R2,#0x18
 0000001E  F7FF      BL          ioman_getSector?T  ; T=0x0001  (1)
 00000020  FFEF      BL          ioman_getSector?T  ; T=0x0001  (2)
  108: }
 00000022  BC30      POP         {R4-R5}
 00000024  BC08      POP         {R3}
 00000026  4718      BX          R3
 00000028          ENDP ; 'part_getSect?T'


*** CODE SEGMENT '?PR?part_relSect?T?partition':
  115: esint8 part_relSect(Partition *part, euint8* buf)
 00000000  B500      PUSH        {LR}
 00000002  1C0A      MOV         R2,R1 ; buf
 00000004  ---- Variable 'buf' assigned to Register 'R2' ----
 00000004  1C01      MOV         R1,R0 ; part
 00000006  ---- Variable 'part' assigned to Register 'R1' ----
  117:     return(ioman_releaseSector(part->disc->ioman,buf));
 00000006  1C08      MOV         R0,R1 ; part
 00000008  6800      LDR         R0,[R0,#0x0] ; part
 0000000A  6800      LDR         R0,[R0,#0x0]
 0000000C  1C11      MOV         R1,R2 ; buf
 0000000E  F7FF      BL          ioman_releaseSector?T  ; T=0x0001  (1)
 00000010  FFF7      BL          ioman_releaseSector?T  ; T=0x0001  (2)
 00000012  0600      LSL         R0,R0,#0x18 ; ioman_releaseSector?T
 00000014  1600      ASR         R0,R0,#0x18
  118: }
 00000016  BC08      POP         {R3}
 00000018  4718      BX          R3
 0000001A          ENDP ; 'part_relSect?T'


*** CODE SEGMENT '?PR?part_flushPart?T?partition':
  120: esint8 part_flushPart(Partition *part,euint32 addr_l, euint32 addr_h)
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  1C15      MOV         R5,R2 ; addr_h
 00000004  ---- Variable 'addr_h' assigned to Register 'R5' ----
 00000004  1C0A      MOV         R2,R1 ; addr_l
 00000006  ---- Variable 'addr_l' assigned to Register 'R2' ----
ARM COMPILER V2.42,  partition                                                             27/03/06  10:45:51  PAGE 8   

 00000006  1C04      MOV         R4,R0 ; part
 00000008  ---- Variable 'part' assigned to Register 'R4' ----
  122:     return( 
 00000008  1C20      MOV         R0,R4 ; part
 0000000A  1C11      MOV         R1,R2 ; addr_l
 0000000C  F7FF      BL          part_getRealLBA?T  ; T=0x0001  (1)
 0000000E  FFF8      BL          part_getRealLBA?T  ; T=0x0001  (2)
 00000010  B401      PUSH        {R0}
 00000012  1C20      MOV         R0,R4 ; part
 00000014  1C29      MOV         R1,R5 ; addr_h
 00000016  F7FF      BL          part_getRealLBA?T  ; T=0x0001  (1)
 00000018  FFF3      BL          part_getRealLBA?T  ; T=0x0001  (2)
 0000001A  1C02      MOV         R2,R0
 0000001C  1C20      MOV         R0,R4 ; part
 0000001E  6800      LDR         R0,[R0,#0x0] ; part
 00000020  6800      LDR         R0,[R0,#0x0]
 00000022  BC02      POP         {R1}
 00000024  F7FF      BL          ioman_flushRange?T  ; T=0x0001  (1)
 00000026  FFEC      BL          ioman_flushRange?T  ; T=0x0001  (2)
 00000028  0600      LSL         R0,R0,#0x18 ; ioman_flushRange?T
 0000002A  1600      ASR         R0,R0,#0x18
  125: }
 0000002C  BC30      POP         {R4-R5}
 0000002E  BC08      POP         {R3}
 00000030  4718      BX          R3
 00000032          ENDP ; 'part_flushPart?T'


*** CODE SEGMENT '?PR?part_directSectorRead?T?partition':
  127: esint8 part_directSectorRead(Partition *part,euint32 address, euint8* buf)
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  1C14      MOV         R4,R2 ; buf
 00000004  ---- Variable 'buf' assigned to Register 'R4' ----
 00000004  1C0A      MOV         R2,R1 ; address
 00000006  ---- Variable 'address' assigned to Register 'R2' ----
 00000006  1C05      MOV         R5,R0 ; part
 00000008  ---- Variable 'part' assigned to Register 'R5' ----
  129:     return(
 00000008  1C28      MOV         R0,R5 ; part
 0000000A  1C11      MOV         R1,R2 ; address
 0000000C  F7FF      BL          part_getRealLBA?T  ; T=0x0001  (1)
 0000000E  FFF8      BL          part_getRealLBA?T  ; T=0x0001  (2)
 00000010  1C01      MOV         R1,R0
 00000012  1C28      MOV         R0,R5 ; part
 00000014  6800      LDR         R0,[R0,#0x0] ; part
 00000016  6800      LDR         R0,[R0,#0x0]
 00000018  1C22      MOV         R2,R4 ; buf
 0000001A  F7FF      BL          ioman_directSectorRead?T  ; T=0x0001  (1)
 0000001C  FFF1      BL          ioman_directSectorRead?T  ; T=0x0001  (2)
 0000001E  0600      LSL         R0,R0,#0x18 ; ioman_directSectorRead?T
 00000020  1600      ASR         R0,R0,#0x18
  132: }
 00000022  BC30      POP         {R4-R5}
 00000024  BC08      POP         {R3}
 00000026  4718      BX          R3
 00000028          ENDP ; 'part_directSectorRead?T'


*** CODE SEGMENT '?PR?part_directSectorWrite?T?partition':
  134: esint8 part_directSectorWrite(Partition *part,euint32 address, euint8* buf)
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  1C14      MOV         R4,R2 ; buf
 00000004  ---- Variable 'buf' assigned to Register 'R4' ----
 00000004  1C0A      MOV         R2,R1 ; address
 00000006  ---- Variable 'address' assigned to Register 'R2' ----
 00000006  1C05      MOV         R5,R0 ; part
 00000008  ---- Variable 'part' assigned to Register 'R5' ----
  136:     return(
 00000008  1C28      MOV         R0,R5 ; part
 0000000A  1C11      MOV         R1,R2 ; address
ARM COMPILER V2.42,  partition                                                             27/03/06  10:45:51  PAGE 9   

 0000000C  F7FF      BL          part_getRealLBA?T  ; T=0x0001  (1)
 0000000E  FFF8      BL          part_getRealLBA?T  ; T=0x0001  (2)
 00000010  1C01      MOV         R1,R0
 00000012  1C28      MOV         R0,R5 ; part
 00000014  6800      LDR         R0,[R0,#0x0] ; part
 00000016  6800      LDR         R0,[R0,#0x0]
 00000018  1C22      MOV         R2,R4 ; buf
 0000001A  F7FF      BL          ioman_directSectorWrite?T  ; T=0x0001  (1)
 0000001C  FFF1      BL          ioman_directSectorWrite?T  ; T=0x0001  (2)
 0000001E  0600      LSL         R0,R0,#0x18 ; ioman_directSectorWrite?T
 00000020  1600      ASR         R0,R0,#0x18
  139: }
 00000022  BC30      POP         {R4-R5}
 00000024  BC08      POP         {R3}
 00000026  4718      BX          R3
 00000028          ENDP ; 'part_directSectorWrite?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 + -