Thursday, March 3, 2011

Will a .NET EXE targeted to x86 run on AMD chips?

If I target the x86 platform for my .NET app, will it run properly on AMD chips? I know that it will work with Intel chips, and that Vista 64 has the ability to run x86 apps in a special mode, but I don't know how much of that is hardware and how much of that is the OS.

I've tested it on Vista 64 with an Intel chip and it works perfectly, but I don't have an AMD machine to test.

From stackoverflow
  • Yes - they are binary compatible, otherwise they wouldn't be drop-in replacements for each other :)

    Unless you mean IA64 vs AMD64 - those are incompatible architectures.

    GalacticCowboy : But then it wouldn't be x86, would it!?!
    warren : no it wouldn't - hence the clarification :)
  • It will work fine

  • This has nothing to do with Intel or AMD, it works on all brands of the same hardware architecture. 32 bit applications can run on 32 bit OS's and on 64 bit OS's. 64bit applications run only on 64bit OS's (and 64bit hardware).

  • The key here is that .NET code targets the CLR, so any processor level issues should be covered there... I don't know this for sure, but I believe that there are multiple versions of the CLR for the x86 / 64.

  • Yes it will work however it will run as a 32 bit process vs. a 64 bit one. The abstraction layer is done at the OS level by introdcuing a subsystem. It is called Wow64 (Windows on Windows 64). This allows 32 bit processes to run natively on a 64 bit machine.

    It will only break down if you do low level kernel integration. Likely something you're not doing with a .Net App.

0 comments:

Post a Comment