Difference between ISA (e.g. MIPS) and Assembly language

George Newton picture George Newton · Jan 29, 2014 · Viewed 6.9k times · Source

What's the difference between an ISA (e.g., MIPS) and Assembly language? I'm seeing some contexts where they appear to be used synonymously.

Answer

Julian picture Julian · Jan 29, 2014

An Instruction Set Architecture (ISA) is physically correspondent to machine operations within a particular processor. This means that the ISA lists any and all instructions, as well as opcodes, that can be performed by specific processors.

An assembly language usually has a 1-1 relationship with the ISA, but can be implemented in different ways. Sometimes the assembly code can perform an entire set of ISA level instructions.

Assembly languages are an abstracted set of ISA opcodes, logic, and instructions that allow for variables/macros/functions/methods/etc. They can be very basic (meaning almost 1-1 mapping) or they can support more complex operations like structural programming blocks.