The direct commands that a computer processor understands are called “machine code” and the list of all machine codes for a particular processor are the “instruction set”. A program/app is basically a giant list of machine code and data. Intel and ARM (the basis for the M1 chip) use different instruction sets, so if you try to run a program made for one on the other one, the processor will have no idea what you’re telling it to do.
Programmers (mostly) write software in human-readable program languages then a special program called a compiler translates them into machine code.
There are two possible solutions: recompile the software for the new processor or stick a special piece of software in the middle (called an emulator) that translates between the two instruction sets in real time so that the computer “looks” to the program like it’s an Intel processor even when it’s not.
If the program was using particular features of one processor that don’t exist on the other, they may also need to rewrite some of the code.
Latest Answers