I'm working with an emulator, and one of the binary executables I've run across has the following sequence in the beginning of a procedure
40 is a REX prefix, but none of the REX bits are actually set. Section 188.8.131.52 of the Intel software developer's manual states that instructions that implicitly reference the stack pointer will have 64-bit widths. Since
55 is the
push ?bp instructions, it seems that a simple
55 would suffice to generate a
push rbp. So why is the
40 prefix there?