📄 partition.lst
字号:
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 + -