Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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.

like image 712
George Newton Avatar asked Jan 29 '14 02:01

George Newton


2 Answers

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.

like image 134
Julian Avatar answered Sep 28 '22 00:09

Julian


I doubt there are any "authoritative" definitions of those terms, but here are some senses in which they may not perfectly overlap:

  • While the "ISA" standardizes a public interface to a processor that should be used as the basis to write programs that are binary-compatible with multiple processors that implement the ISA, "assembly language" may just as well refer to what is implemented by a specific processor, without necessarily being compatible with other implementations.
  • More generally, "an ISA" is a standards document, while "assembly language" is a programming language.
  • An ISA would normally specify not only instructions and their names, but also a binary encoding for them (such as opcodes and argument encodings). The term "assembly language" refers to the text form of the instructions only, without reference to their encoding.

That said, they obviously have a lot of overlap, so in non-normative texts it would be quite understandable if they are used interchangably in some contexts.

like image 39
Dolda2000 Avatar answered Sep 28 '22 01:09

Dolda2000