Search code examples
assemblyarchitectureoperating-systemmachine-codeinstruction-set

What's the relationship between assembly language and machine language?


Are assembly language and machine language (for the same underlying system) really the same? Are there any differences between these two concepts?


Solution

  • Assembly language is a convenience mechanism over the machine language. With assembly language you use mnemonic sequences instead of numeric operation codes and can use symbolic labels instead of manually calculating offsets. It also protects you from really dumb errors - like typing a malformed processor instruction.

    Otherwise the assembly language is the equivalent of the machine language. Sometimes you will have an old assembler that will not support mnemonics for some instructions of the newer processors - then you can still insert operation codes directly into the program.