Thank you Ian and Michael for taking the time to respond to this topic. And thank you Brian for bringing it up. I learned a lot from this discussion. For the record, I would never advise trying to mix 64-bit and 32-bit code (even before learning the actual details here). In my experience, even if you could get it to work, including passing thorough QA testing, a user will figure out a way to break it. And this will occur at the most inconvenient time, both for the user and for you. Somewhere in that 32-bit code there is an aad, aas, etc. instruction that is executed by the special magic only a user can bring to your code. :-) Ultimately, of course, the user is right. Bob On Thu, 2009-05-21 at 23:38 -0700, Ian Lance Taylor wrote: > Bob Plantz <plantz@xxxxxxxx> writes: > > > I'm not aware of any 32-bit instructions that behave differently in > > 64-bit mode. Except, of course, instructions that manipulate the stack > > (push, pop, call, ret, etc.) do so in 32-bit or 64-bit increments, > > respectively. This is the machine code 0x55 is pushl %ebp in 32-bit mode > > and it is pushq %rbp in 64-bit mode. > > > > Do you have other examples? > > There are several 32-bit instructions which are invalid in 64-bit mode, > such as aad, aas, etc. > > Ian