I have made an assembly program in x86, and this program has a behaviour I do not understand. I wanted to spot the difference between using _start and $_start. _start is treated as an address to reach when $_start is treated as an immediate number (which is the address). However, when I want to examine what is at the location of _start with gdb :
x _start
I do not get the correct number which is located at the address of _start. As you can see on the picture, 0xFFFFFFB8 is in the memory at the address of _start, but 0xFFFFFFFCC is moved to the %ebx register. When I copy the value at the adresses (_start - 4) and (_start + 4), this work perfecly.
Do you have any idea where this could come from ?
