I was just disassembling and debugging an ARM binary for fun and I noticed something unusual. Consider the following set of instructions:-
0x00008058 <+4>: mov r1, pc 0x0000805c <+8>: add r1, r1, #24 0x00008060 <+12>: mov r0, #1
I tried setting a breakpoint at
0x0000805c and checked the value of the register
r1. I was expecting to see
0x0000805c -- however, interestingly the value is
Why is this? Is this because of some sort of instruction pipelineing?