---
tags:
  - Theory_of_Computation
  - assembly
---

The Little Man was an example of a computer written in machine code → this can be very hard to easily decipher as it functions at such a low level of abstraction. For this reason there are types of programming languages called **Assembly Language**.

Assembly languages are slightly higher level languages that can easily be converted into machine code. Think of them as one stage up. They are slightly easier to manage and understand. The conversion is carried out by something called an **assembler**.

The table below is an example of how the LMC machine code could be converted into assembly.

![Pasted image 20220319180227.png](../img/Pasted%20image%2020220319180227.png)

 > 
 > While Assembly is rarely used in modern computer programming, it is worthwhile spending a little time experimenting with this set of languages. Programming in Assembly can give you an appreciation for how much complexity is abstracted away by modern languages, and also what are the hardware and software limitations of modern computers. Although programmers nowadays use high-level programming languages, before computers can run them, they must be translated (or compiled) into machine code, which as you have seen is very close to Assembly.
