1. 11
  1.  

  2. 1

    A story related to the second nugget – MSVC has a file listing.inc containing padding macros, which is included in the assembly output the compiler produces.

    The first 64-bit versions did not include an updated listing.inc. For instance a NPAD 2 would result in the 2 byte instruction mov edi, edi, which on AMD64 this has the side effect of clearing the high 32 bits of rdi.

    So you could have code that worked fine, but if you produced an assembly listing and ran MASM on it, it would crash.