## Background

In a machine language, instructions are encoded as 0’s and 1’s. This is unwieldy for programmers to write. Hence, to tell processors what to execute, programmers use an assembly language, writing these instructions in textual form, for example:

MOV R9, R3


An assembler translates the assembly language into machine language.

There are many machine languages, each designed with a processor in mind, enabling fast and simple circuits to be built to execute the instructions. Each machine language requires a corresponding assembly language, since the assembly language must support a different set of machine instructions. The design of the machine language encoding is called the instruction set architecture (ISA).