The only real difference between AMD and Intel at this processor iteration is their implementation of the instruction sets that they support. x86 (32 bit) and x64 (64 bit) are the two most common instruction sets for Intel and AMD processors.
Differences arise when Intel and AMD implement instruction sets on their chips, but these implementations should not affect the instruction sets themselves. Therefore, if the program was compiled for the x64 processor, it can run on any processor that implements the x64 instruction set, which is implemented by almost all modern Intel and AMD processors.
A great example of a difference in implementation is that Intel likes to create hypertext cores, while AMD likes to just add more cores. They do this for a variety of reasons, such as energy consumption and better parallel processing, but in fact it does not affect if the programs are executed because they do not change the set of instructions. Another difference between Intel and AMD is the number of pipeline stages that can affect speed.
The operating systems take into account the huge complexity. Windows has huge libraries that programs should use if they want to work on Windows. The same goes for Linux and Mac OS X. Since these libraries are not shared between operating systems, programs written on one operating system will probably not work on another.
source share