'bl' or branch using the link command almost always becomes 0xebfffffe
However, the processor and GNU binutils objdump somehow know where to separate:
00000000 <init_module>: 0: e1a0c00d mov ip, sp 4: e92ddff0 push {r4, r5, r6, r7, r8, r9, sl, fp, ip, lr, pc} 8: e24cb004 sub fp, ip, #4 c: e24dd038 sub sp, sp, #56 ; 0x38 10: ebfffffe bl 0 <init_module> 14: e59f0640 ldr r0, [pc, #1600] ; 65c <init_module+0x65c> 18: ebfffffe bl 74 <init_module+0x74>
How do they know?
linux arm disassembly
yanychar
source share