Maschinensprache, die numerischen Codes für die Operationen, die ein bestimmter Computer direkt ausführen kann. Die Codes sind Zeichenketten aus 0en und 1en oder binären Ziffern („Bits“), die häufig sowohl von als auch in Hexadezimal (Basis 16) konvertiert werden, um sie für den Menschen sichtbar zu machen und zu verändern. Anweisungen in Maschinensprache verwenden typischerweise einige Bits zur Darstellung von Operationen, wie z. B. Addition, und einige zur Darstellung von Operanden oder vielleicht der Position der nächsten Anweisung. Maschinensprache ist schwierig zu lesen und zu schreiben, da sie nicht der konventionellen mathematischen Notation oder der menschlichen Sprache ähnelt, und ihre Codes variieren von Computer zu Computer.
Assemblersprache ist eine Stufe über der Maschinensprache. Sie verwendet kurze mnemonische Codes für Anweisungen und erlaubt dem Programmierer, Namen für Speicherblöcke einzuführen, die Daten enthalten. Man könnte also „add pay, total“ statt „0110101100101000“ für eine Anweisung schreiben, die zwei Zahlen addiert.
Assemblersprache ist so konzipiert, dass sie leicht in Maschinensprache übersetzt werden kann. Obwohl Datenblöcke mit Namen statt mit ihren Maschinenadressen bezeichnet werden können, bietet Assemblersprache keine ausgefeilteren Möglichkeiten, komplexe Informationen zu organisieren. Wie die Maschinensprache erfordert auch die Assemblersprache detaillierte Kenntnisse über eine bestimmte interne Computerarchitektur. Sie ist nützlich, wenn solche Details wichtig sind, wie z. B. bei der Programmierung eines Computers für die Interaktion mit Eingabe-/Ausgabegeräten (Drucker, Scanner, Speichergeräte usw.).