3

I am running 32-bit Windows 7 on a 64-bit Intel Atom and I'm wondering whether the OS puts the CPU in a mode that still allows 64-bit instructions to execute or in a full 32-bit compatibility mode that causes all 64-bit instructions to be trapped as illegal.

If not is it blocked by the OS or the CPU? And would Intel and AMD CPUs differ in this regard?

2 Answers 2

3

If you're running a 32-bit OS, the CPU is in 32-bit mode and none of the extra hardware capabilities are accessible. 64-bit code will not run when the CPU is in this state. It's not an OS limitation, it is an artifact of how the hardware works.

There should be no differences between AMD and Intel CPUs in this respect.

3
  • Hmm I cam across this on Stackoverflow which seems to suggest that Mac OS X can do it on the same hardware: stackoverflow.com/questions/49934/… Commented Apr 4, 2011 at 2:34
  • This is very interesting, I hadn't come across that before. I'm used to monolithic kernels, I guess. Windows definitely doesn't work that way, but it seems it would be possible in theory (I'm not quite sure how - wouldn't the kernel need to translate 64-bit physical addresses into 32-bit virtual addresses? No base and segment registers in long mode...My memories of my OS courses are fading, though).
    – user55325
    Commented Apr 4, 2011 at 2:48
  • Maybe it would just ignore or trap nonzero state in the high 32 bits of absolute addresses? Commented Apr 4, 2011 at 3:02
1

Windows 7 uses 64 bit as a separate system in the OS, 32 bit apps run in 32 bit mode and 64 bit apps run in 64 bit.

It is mainly determined by the OS, but it wouldn't work if the CPU is not 64 bit anyway.

So I would say the OS stops the 64bit apps running in 32 bit. Intel & AMD CPUs will work the same, there won't be no difference with using the two.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .