The PC architecture is known for having a lot of instructions. (And often ridiculed for it, too. Alas.)*
To answer your question, there really isn't any sort of standard. Every processor has it's
own standard.
Part of the allure of the x86 series is that each successive processor supports the previous's opcodes and instruction modes. (With minor exceptions.) It isn't the only processor series that does that, though.
But the point is an PC's machine code is specific to the PC, and will not run on, say, a Sun SPARC.
That's why you'll see things like "Pentium II or better" on the list of requirements for software -- because the software has opcodes that only exist beginning with 686 processors -- a 486 would crash with "illegal instruction".
When you compile a program it's quite likely that it can run on any computer processor you choose |
...with the caveat that
once compiled it will only run on what you chose.
That is, you can compile to
target any processor you want (assuming your compiler can output for the target processor). But once you compile, the resulting executable binary is only useful on that processor (and OS) you selected when compiling.
* In contrast, there is an idea of a
reduced instruction set, the most prominent of which is MIPS. For the MIPS architecture, check out Wikipedia
http://en.wikipedia.org/wiki/MIPS_architecture
Hope this helps.