Assembly
listing for prj4 for reference:
========================================================================
** ELF Header Information
File Name: .\Objects\prj4.axf
Machine class: ELFCLASS32 (32-bit)
Data encoding: ELFDATA2LSB (Little endian)
Header version: EV_CURRENT (Current version)
Operating System ABI: none
ABI Version: 0
File Type: ET_EXEC (Executable) (2)
Machine: EM_ARM (ARM)
Image Entry point: 0x00000089
Flags: EF_ARM_HASENTRY + EF_ARM_ABI_FLOAT_SOFT
(0x05000202)
ARM ELF revision: 5 (ABI version 2)
Conforms to Soft float procedure-call standard
Built with
Component: ARM Compiler 5.06 update 6 (build
750) Tool: armasm [4d35ec]
Component: ARM Compiler 5.06 update 6 (build
750) Tool: armlink [4d35ed]
Header size: 52 bytes (0x34)
Program header entry size: 32 bytes (0x20)
Section header entry size: 40 bytes (0x28)
Program header entries: 1
Section header entries: 15
Program header offset: 11468 (0x00002ccc)
Section header offset: 11500 (0x00002cec)
Section header string table index: 14
========================================================================
** Program header #0
Type :
PT_LOAD (1)
File Offset : 52 (0x34)
Virtual Addr : 0x00000000
Physical Addr : 0x00000000
Size in file : 388 bytes (0x184)
Size in memory: 1412 bytes (0x584)
Flags : PF_X +
PF_W + PF_R + PF_ARM_ENTRY (0x80000007)
Alignment : 8
========================================================================
** Section #1
Name
: ER_RO
Type
: SHT_PROGBITS (0x00000001)
Flags :
SHF_ALLOC + SHF_EXECINSTR (0x00000006)
Addr
: 0x00000000
File Offset : 52 (0x34)
Size
: 388 bytes (0x184)
Link
: SHN_UNDEF
Info
: 0
Alignment : 4
Entry Size : 0
$d.realdata
RESET
__Vectors
0x00000000: 20000400
... DCD 536871936
0x00000004: 00000089
.... DCD 137
$t
!!!main
__Vectors_End
__main
0x00000008: f000f802
.... BL
__scatterload ; 0x10
0x0000000c: f000f82c
..,. BL
__rt_entry ; 0x68
!!!scatter
__scatterload
__scatterload_rt2
__scatterload_rt2_thumb_only
0x00000010:
a00a
.. ADR
r0,{pc}+0x2c ; 0x3c
0x00000012: e8900c00
.... LDM
r0,{r10,r11}
0x00000016:
4482
.D ADD
r10,r10,r0
0x00000018:
4483
.D ADD
r11,r11,r0
0x0000001a: f1aa0701
.... SUB r7,r10,#1
__scatterload_null
0x0000001e:
45da
.E CMP
r10,r11
0x00000020:
d101
.. BNE
0x26 ; __scatterload_null + 8
0x00000022: f000f821
..!. BL
__rt_entry ; 0x68
0x00000026: f2af0e09
.... ADR lr,{pc}-7
; 0x1f
0x0000002a: e8ba000f
.... LDM
r10!,{r0-r3}
0x0000002e: f0130f01
.... TST r3,#1
0x00000032:
bf18
..
IT NE
0x00000034:
1afb
.. SUBNE r3,r7,r3
0x00000036: f0430301
C... ORR r3,r3,#1
0x0000003a:
4718
.G
BX r3
$d
0x0000003c: 00000138
8... DCD 312
0x00000040: 00000148
H... DCD 328
$t
!!handler_zi
__scatterload_zeroinit
0x00000044:
2300
.# MOVS
r3,#0
0x00000046:
2400
.$ MOVS
r4,#0
0x00000048:
2500
.% MOVS
r5,#0
0x0000004a:
2600
.& MOVS
r6,#0
0x0000004c:
3a10
.: SUBS
r2,r2,#0x10
0x0000004e:
bf28
(.
IT CS
0x00000050:
c178
x. STMCS
r1!,{r3-r6}
0x00000052:
d8fb
.. BHI
0x4c ; __scatterload_zeroinit + 8
0x00000054:
0752
R. LSLS
r2,r2,#29
0x00000056:
bf28
(.
IT CS
0x00000058:
c130
0. STMCS
r1!,{r4,r5}
0x0000005a:
bf48
H.
IT MI
0x0000005c:
600b
.` STRMI
r3,[r1,#0]
0x0000005e:
4770
pG
BX lr
.ARM.Collect$$libinit$$00000000
__rt_lib_init
0x00000060:
b51f
.. PUSH
{r0-r4,lr}
.ARM.Collect$$libinit$$00000002
.ARM.Collect$$libinit$$00000004
.ARM.Collect$$libinit$$0000000A
.ARM.Collect$$libinit$$0000000C
.ARM.Collect$$libinit$$0000000E
.ARM.Collect$$libinit$$00000011
.ARM.Collect$$libinit$$00000013
.ARM.Collect$$libinit$$00000015
.ARM.Collect$$libinit$$00000017
.ARM.Collect$$libinit$$00000019
.ARM.Collect$$libinit$$0000001B
.ARM.Collect$$libinit$$0000001D
.ARM.Collect$$libinit$$0000001F
.ARM.Collect$$libinit$$00000021
.ARM.Collect$$libinit$$00000023
.ARM.Collect$$libinit$$00000025
.ARM.Collect$$libinit$$0000002C
.ARM.Collect$$libinit$$0000002E
.ARM.Collect$$libinit$$00000030
.ARM.Collect$$libinit$$00000032
.ARM.Collect$$libinit$$00000033
__rt_lib_init_alloca_1
__rt_lib_init_argv_1
__rt_lib_init_atexit_1
__rt_lib_init_clock_1
__rt_lib_init_cpp_1
__rt_lib_init_exceptions_1
__rt_lib_init_fp_1
__rt_lib_init_fp_trap_1
__rt_lib_init_getenv_1
__rt_lib_init_heap_1
__rt_lib_init_lc_collate_1
__rt_lib_init_lc_ctype_1
__rt_lib_init_lc_monetary_1
__rt_lib_init_lc_numeric_1
__rt_lib_init_lc_time_1
__rt_lib_init_preinit_1
__rt_lib_init_rand_1
__rt_lib_init_return
__rt_lib_init_signal_1
__rt_lib_init_stdio_1
__rt_lib_init_user_alloc_1
0x00000062:
bd1f
.. POP
{r0-r4,pc}
.ARM.Collect$$libshutdown$$00000000
__rt_lib_shutdown
0x00000064:
b510
.. PUSH
{r4,lr}
.ARM.Collect$$libshutdown$$00000002
.ARM.Collect$$libshutdown$$00000004
.ARM.Collect$$libshutdown$$00000007
.ARM.Collect$$libshutdown$$0000000A
.ARM.Collect$$libshutdown$$0000000C
.ARM.Collect$$libshutdown$$0000000F
.ARM.Collect$$libshutdown$$00000010
__rt_lib_shutdown_cpp_1
__rt_lib_shutdown_fp_trap_1
__rt_lib_shutdown_heap_1
__rt_lib_shutdown_return
__rt_lib_shutdown_signal_1
__rt_lib_shutdown_stdio_1
__rt_lib_shutdown_user_alloc_1
0x00000066:
bd10
.. POP
{r4,pc}
.ARM.Collect$$rtentry$$00000000
.ARM.Collect$$rtentry$$00000002
.ARM.Collect$$rtentry$$00000005
__rt_entry
__rt_entry_presh_1
__rt_entry_sh
0x00000068: f8dfd00c
.... LDR
sp,__lit__00000000 ; [0x78] = 0x20000400
.ARM.Collect$$rtentry$$00000009
.ARM.Collect$$rtentry$$0000000A
__rt_entry_li
__rt_entry_postsh_1
0x0000006c: f7fffff8
.... BL
__rt_lib_init ; 0x60
.ARM.Collect$$rtentry$$0000000C
.ARM.Collect$$rtentry$$0000000D
__rt_entry_main
__rt_entry_postli_1
0x00000070: f000f850
..P. BL main
; 0x114
0x00000074: f000f83e
..>. BL
exit ; 0xf4
$d
.ARM.Collect$$rtentry$$00002716
__lit__00000000
0x00000078: 20000400
... DCD 536871936
$t
.ARM.Collect$$rtexit$$00000000
__rt_exit
0x0000007c:
b403
.. PUSH
{r0,r1}
.ARM.Collect$$rtexit$$00000002
.ARM.Collect$$rtexit$$00000003
__rt_exit_ls
__rt_exit_prels_1
0x0000007e: f7fffff1
.... BL
__rt_lib_shutdown ; 0x64
.ARM.Collect$$rtexit$$00000004
__rt_exit_exit
0x00000082:
bc03
.. POP
{r0,r1}
0x00000084: f000f840
..@. BL
__semihosting_library_function ; 0x108
.text
Reset_Handler
0x00000088:
4800
.H LDR
r0,[pc,#0] ; [0x8c] = 0x9
0x0000008a:
4700
.G
BX r0
$d
0x0000008c: 00000009
.... DCD 9
$t
.text
__aeabi_memcpy4
__aeabi_memcpy8
__rt_memcpy_w
0x00000090:
b510
.. PUSH
{r4,lr}
0x00000092:
3a20
: SUBS
r2,r2,#0x20
0x00000094: f0c0800b
.... BCC.W 0xae ;
__aeabi_memcpy4 + 30
0x00000098: e8b15018
...P LDM
r1!,{r3,r4,r12,lr}
0x0000009c:
3a20
: SUBS
r2,r2,#0x20
0x0000009e: e8a05018
...P STM
r0!,{r3,r4,r12,lr}
0x000000a2: e8b15018
...P LDM
r1!,{r3,r4,r12,lr}
0x000000a6: e8a05018
...P STM
r0!,{r3,r4,r12,lr}
0x000000aa: f4bfaff5
.... BCS.W 0x98 ;
__aeabi_memcpy4 + 8
0x000000ae: ea5f7c02
_..| LSLS r12,r2,#28
0x000000b2:
bf24
$. ITT
CS
0x000000b4: e8b15018
...P LDMCS r1!,{r3,r4,r12,lr}
0x000000b8: e8a05018
...P STMCS r0!,{r3,r4,r12,lr}
0x000000bc:
bf44
D. ITT
MI
0x000000be:
c918
.. LDMMI
r1!,{r3,r4}
0x000000c0:
c018
.. STMMI
r0!,{r3,r4}
0x000000c2: e8bd4010
...@ POP {r4,lr}
0x000000c6: ea5f7c82
_..| LSLS r12,r2,#30
0x000000ca:
bf24
$. ITT
CS
0x000000cc: f8513b04
Q..; LDRCS r3,[r1],#4
0x000000d0: f8403b04
@..; STRCS r3,[r0],#4
0x000000d4:
bf08
..
IT EQ
0x000000d6:
4770
pG BXEQ lr
_memcpy_lastbytes_aligned
0x000000d8:
07d2
.. LSLS
r2,r2,#31
0x000000da:
bf28
(.
IT CS
0x000000dc: f8313b02
1..; LDRHCS r3,[r1],#2
0x000000e0:
bf48
H.
IT MI
0x000000e2: f8112b01
...+ LDRBMI r2,[r1],#1
0x000000e6:
bf28
(.
IT CS
0x000000e8: f8203b02
..; STRHCS r3,[r0],#2
0x000000ec:
bf48
H.
IT MI
0x000000ee: f8002b01
...+ STRBMI r2,[r0],#1
0x000000f2:
4770
pG
BX lr
.text
exit
0x000000f4:
b510
.. PUSH
{r4,lr}
0x000000f6:
4604
.F MOV
r4,r0
0x000000f8: f3af8000
.... NOP.W
0x000000fc:
4620
F MOV
r0,r4
0x000000fe: e8bd4010
...@ POP {r4,lr}
0x00000102: f7ffbfbb
.... B.W __rt_exit
; 0x7c
.text
__I$use$semihosting
__use_no_semihosting_swi
0x00000106:
4770
pG
BX lr
.text
.text
__semihosting_library_function
_sys_exit
0x00000108:
4901
.I LDR
r1,[pc,#4] ; [0x110] = 0x20026
0x0000010a:
2018
. MOVS
r0,#0x18
0x0000010c:
beab
.. BKPT
#0xab
0x0000010e:
e7fe
..
B 0x10e ;
__semihosting_library_function + 6
$d
0x00000110: 00020026
&... DCD 131110
$t
i.main
main
0x00000114:
b086
.. SUB
sp,sp,#0x18
0x00000116:
2214
." MOVS
r2,#0x14
0x00000118:
490d
.I LDR
r1,[pc,#52] ; [0x150] = 0x160
0x0000011a:
a801
.. ADD
r0,sp,#4
0x0000011c: f7ffffb8
.... BL
__aeabi_memcpy4 ; 0x90
0x00000120:
bf00
.. NOP
0x00000122:
2400
.$ MOVS
r4,#0
0x00000124:
e00e
..
B 0x144 ; main + 48
0x00000126:
bf00
.. NOP
0x00000128:
480a
.H LDR
r0,[pc,#40] ; [0x154] = 0xe000ed00
0x0000012a:
6805
.h LDR
r5,[r0,#0]
0x0000012c:
480a
.H LDR
r0,[pc,#40] ; [0x158] = 0x410fc240
0x0000012e:
4285
.B CMP
r5,r0
0x00000130:
d103
.. BNE
0x13a ; main + 38
0x00000132:
2001
. MOVS
r0,#1
0x00000134:
4909
.I LDR
r1,[pc,#36] ; [0x15c] = 0x20000ff0
0x00000136:
6008
.` STR
r0,[r1,#0]
0x00000138:
e002
..
B 0x140 ; main + 44
0x0000013a:
2002
. MOVS
r0,#2
0x0000013c:
4907
.I LDR
r1,[pc,#28] ; [0x15c] = 0x20000ff0
0x0000013e:
6008
.` STR
r0,[r1,#0]
0x00000140:
bf00
.. NOP
0x00000142:
1c64
d. ADDS
r4,r4,#1
0x00000144:
9801
.. LDR
r0,[sp,#4]
0x00000146:
42a0
.B CMP
r0,r4
0x00000148:
dced
.. BGT
0x126 ; main + 18
0x0000014a:
bf00
.. NOP
0x0000014c:
e7fe
..
B 0x14c ; main + 56
$d
0x0000014e:
0000
.. DCW 0
0x00000150: 00000160
`... DCD 352
0x00000154: e000ed00
.... DCD 3758157056
0x00000158: 410fc240
@..A DCD 1091551808
0x0000015c: 20000ff0
... DCD 536874992
$d.realdata
.constdata
0x00000160: 0000000a
.... DCD 10
0x00000164: 0000000b
.... DCD 11
0x00000168: 0000000c
.... DCD 12
0x0000016c: 0000000d
.... DCD 13
0x00000170: 0000000e
.... DCD 14
Region$$Table$$Base
0x00000174: 00000184
.... DCD 388
0x00000178: 20000000
... DCD 536870912
0x0000017c: 00000400
.... DCD 1024
0x00000180: 00000044
D... DCD 68
Region$$Table$$Limit
====================================
** Section #2
Name
: ER_ZI
Type
: SHT_NOBITS (0x00000008)
Flags :
SHF_ALLOC + SHF_WRITE (0x00000003)
Addr
: 0x20000000
File Offset : 440 (0x1b8)
Size
: 1024 bytes (0x400)
Link
: SHN_UNDEF
Info
: 0
Alignment : 8
Entry Size : 0
====================================
** Section #3
Name
: .debug_abbrev
Type
: SHT_PROGBITS (0x00000001)
Flags :
None (0x00000000)
Addr
: 0x00000000
File Offset : 440 (0x1b8)
Size
: 1476 bytes (0x5c4)
Link
: SHN_UNDEF
Info
: 0
Alignment : 1
Entry Size : 0
====================================
** Section #4
Name
: .debug_frame
Type
: SHT_PROGBITS (0x00000001)
Flags :
None (0x00000000)
Addr
: 0x00000000
File Offset : 1916 (0x77c)
Size
: 384 bytes (0x180)
Link
: SHN_UNDEF
Info
: 0
Alignment : 1
Entry Size : 0
====================================
** Section #5
Name
: .debug_info
Type
: SHT_PROGBITS (0x00000001)
Flags :
None (0x00000000)
Addr
: 0x00000000
File Offset : 2300 (0x8fc)
Size
: 776 bytes (0x308)
Link
: SHN_UNDEF
Info
: 0
Alignment : 1
Entry Size : 0
====================================
** Section #6
Name
: .debug_line
Type
: SHT_PROGBITS (0x00000001)
Flags :
None (0x00000000)
Addr
: 0x00000000
File Offset : 3076 (0xc04)
Size
: 244 bytes (0xf4)
Link
: SHN_UNDEF
Info
: 0
Alignment : 1
Entry Size : 0
====================================
** Section #7
Name
: .debug_loc
Type
: SHT_PROGBITS (0x00000001)
Flags :
None (0x00000000)
Addr
: 0x00000000
File Offset : 3320 (0xcf8)
Size
: 72 bytes (0x48)
Link
: SHN_UNDEF
Info
: 0
Alignment : 1
Entry Size : 0
====================================
** Section #8
Name
: .debug_macinfo
Type
: SHT_PROGBITS (0x00000001)
Flags :
None (0x00000000)
Addr
: 0x00000000
File Offset : 3392 (0xd40)
Size
: 88 bytes (0x58)
Link
: SHN_UNDEF
Info
: 0
Alignment : 1
Entry Size : 0
====================================
** Section #9
Name
: .debug_pubnames
Type
: SHT_PROGBITS (0x00000001)
Flags :
None (0x00000000)
Addr
: 0x00000000
File Offset : 3480 (0xd98)
Size
: 27 bytes (0x1b)
Link
: SHN_UNDEF
Info
: 0
Alignment : 1
Entry Size : 0
====================================
** Section #10
Name
: .symtab
Type
: SHT_SYMTAB (0x00000002)
Flags :
None (0x00000000)
Addr
: 0x00000000
File Offset : 3508 (0xdb4)
Size
: 3056 bytes (0xbf0)
Link
: Section 11 (.strtab)
Info
: Last local symbol no = 122
Alignment : 4
Entry Size : 16
====================================
** Section #11
Name
: .strtab
Type
: SHT_STRTAB (0x00000003)
Flags :
None (0x00000000)
Addr
: 0x00000000
File Offset : 6564 (0x19a4)
Size
: 3320 bytes (0xcf8)
Link
: SHN_UNDEF
Info
: 0
Alignment : 1
Entry Size : 0
====================================
** Section #12
Name
: .note
Type
: SHT_NOTE (0x00000007)
Flags :
None (0x00000000)
Addr
: 0x00000000
File Offset : 9884 (0x269c)
Size
: 24 bytes (0x18)
Link
: SHN_UNDEF
Info
: 0
Alignment : 4
Entry Size : 0
Section Segment
====================================
1 0
2 0
====================================
** Section #13
Name
: .comment
Type
: SHT_PROGBITS (0x00000001)
Flags :
None (0x00000000)
Addr
: 0x00000000
File Offset : 9908 (0x26b4)
Size
: 1404 bytes (0x57c)
Link
: SHN_UNDEF
Info
: 0
Alignment : 1
Entry Size : 0
Component: ARM Compiler 5.06 update 6 (build
750) Tool: armlink [4d35ed]
ArmLink --strict --callgraph
--load_addr_map_info --map --symbols --xref --diag_suppress=9931
--ro_base=0x0 --rw_base=0x20000000 --cpu=Cortex-M4 --fpu=SoftVFP
--first=__Vectors --list=.\Listings\prj4.map
--output=.\Objects\prj4.axf --entry=Reset_Handler
--info=summarysizes,sizes,totals,unused,veneers
C:\Keil_v5\ARM\ARMCC\Bin\..\lib\armlib\c_w.l
C:\Keil_v5\ARM\ARMCC\Bin\..\lib\armlib\fz_ws.l
C:\Keil_v5\ARM\ARMCC\Bin\..\lib\armlib\h_w.l
C:\Keil_v5\ARM\ARMCC\Bin\..\lib\armlib\m_ws.l
C:\Keil_v5\ARM\ARMCC\Bin\..\lib\armlib\vfpsupport.l
Input Comments:
startup.o
Component: ARM Compiler 5.06 update 6 (build
750) Tool: armasm [4d35ec]
ArmAsm --debug --xref --diag_suppress=9931
--cpu=Cortex-M4 --apcs=interwork
--depend=.\objects\startup.d -I.\RTE\_Target_1
-IC:\Users\avirmitt\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\Device\ARM\ARMCM4\Include
-IC:\Keil_v5\ARM\CMSIS\Include
main.o
Component: ARM Compiler 5.06 update 6 (build
750) Tool: ArmCC [4d3637]
ArmCC --c99 --split_sections --debug -c --gnu
-o.\objects\main.o --depend=.\objects\main.d --cpu=Cortex-M4
--apcs=interwork -O0 --diag_suppress=9931 -I.\RTE\_Target_1
-IC:\Users\avirmitt\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\Device\ARM\ARMCM4\Include
-IC:\Keil_v5\ARM\CMSIS\Include -D__EVAL -D__UVISION_VERSION=528
-DARMCM4 --omf_browse=.\objects\main.crf src\c\main.c
====================================
** Section #14
Name
: .shstrtab
Type
: SHT_STRTAB (0x00000003)
Flags :
None (0x00000000)
Addr
: 0x00000000
File Offset : 11312 (0x2c30)
Size
: 156 bytes (0x9c)
Link
: SHN_UNDEF
Info
: 0
Alignment : 1
Entry Size : 0
====================================