I work with an emulator, and one of the binary executables that I executed has the following sequence at the beginning of the procedure
40 55
40is a REX prefix, but none of the REX bits are actually set. Section 2.2.1.7 of the Intel Software Developer Guide states that instructions that implicitly reference a stack pointer will be 64 bits wide. Since these 55are instructions push ?bp, it seems that simple 55would be enough to generate a push rbp. So why 40is there a prefix ?
source
share