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


====================================