Um die Programmierung einfacher zu machen, begann man ab dem Jahre 1950 die Bitkombinationen durch kurze, leicht einprägsame Symbole (Mnemonics) zu ersetzen. Zuerst wurden Zahlen des Operationsteil ersetzt, später auch die binäre Kodierung des Adressteils durch hexadezimale Zahlen. Da hier mit Symbolen gearbeitet wurde, werden diese Sprachen der
2. Generation auch symbolorientierte Programmiersprachen genannt. Die Symbole müssen für den Prozessor erst wieder in Bitkombinationen übersetzt werden. Diese Arbeit übernimmt Assembler- ein Übersetzungsprogramm. Bei der Assembler- Programmierung entspricht jeder Befehl einer Anweisung an den Prozessor. E handelt sich dabei um 1:1 Sprache.
Additionsbeispiel in Assembler:
Aufgabe: Addiere 3 und 4
Maschinensprache: 0001 1010 0011 0100
Assemblersprache: ADD 3 4
Jeder Befehl muss eigens programmiert werden, daher ist die Fehlerquote immer noch sehr hoch. Assembler wird heute nur noch eingesetzt, wenn es um sehr hohe Geschwindigkeiten geht oder sehr nah an der Hardware programmiert werden muss.
