An architecture has an instruction set (possible assembler) that is 95-100% identical between CPUs in that architecture. Sometimes there are added instructions like a divide, more/extended floating point registers, etc. However, the intent is that a compiler can easily output code that will run on this set of CPUs (same architecture) with relative ease. Each new architecture tries to be backwards compatible with previous architectures.
The main difference is that system registers may be quite different between CPUs even in the same architecture. So system/OS software will be quite different.
MyGiftCardSite