Static Linking 0000885c <main>: ; 888c <main+0x30> ; 8890 <main+0x34> push {r4, lr} ldr r4, [pc, #36] ldr r4, [pc, r4] ldr r0, [r4] bl 8a10 <f> ldr r3, [pc, #24] mov r2, r0 ldr r1, [r4] ldr r0, [pc, r3] blx mov b180 <printf> r0, #0 pop {r4, pc} 885c: 8860: 8864: 8868: 886c: 8870: 8874: 8878: 887c: 8880: 8884: 8888: 888c: e92d4010 e59f4024 e79f4004 e5940000 eb000067 e59f3018 e1a02000 e5941000 e79f0003 fa000a3e e3a00000 e8bd8010 0002366c 8890: 00023658 .word 0x0002366c .word 0x00023658 00008a10 <f>: cmp r0, #1 8a10: 8a14: 8a18: e3500001 c2400001 e12fff1e subgt r0, r0, #1 bx lr 0000b180 <printf>: ; (b1a8 <printf+0x28>) ; (b1ac <printf+0x2c>) push {r0, r1, r2, r3} push {r0, r1, r2, lr} add r2, sp, #16 ldr r3, [pc, #32] ldr.w r1, [r2], #4 ldr r0, [pc, #28] add r3, pc str r2, [sp, #4] ldr r3, [r3, r0] add.w r0, r3, #84 ; 0x54 bl c7d0 <vfprintf> add sp, #12 ldr.w lr, [sp], #4 add sp, #16 bx lr b40f b507 aa04 4b08 f852 1b04 4807 447b 9201 581b f103 0054 f001 fb1a b003 f85d eb04 b004 4770 bf00 nop b180: b182: b184: b186: b188: b18c: b18e: b190: b192: b194: b198: b19c: b19e: b1a2: b1a4: b1a6: b1a8: b1ac: 00020e62 .word 0x00020e62 ffffff0c .word 0xffffff0c PC relative addressing so that the code can be loaded into arbitrary addresses in the memory.