Was ist Assembly?

Der ENIAC war der erste elektronische Universalrechner. Er wurde an der University of Pennsylvania gebaut und 1945 fertiggestellt. Snyder war eine von sechs Frauen, die ihn von Hand programmierten.
Vor Maschinen wie dem ENIAC bedeutete das Wort Computer eine Person, die Berechnungen von Hand durchführte, und die sechs Frauen, die den ENIAC programmierten, waren für diese Arbeit eingestellt worden. Um die Maschine zu programmieren, verdrahteten sie sie neu: Sie steckten Kabel ein und setzten Schalter, jedes Mal wenn sich das Problem änderte. Diese Neuverdrahtung ist der historische Grund, warum es Assemblersprache gibt. Innerhalb weniger Jahre begannen Ingenieure in Europa und Amerika, Drähte und Schaltereinstellungen durch kurze geschriebene Codes zu ersetzen, die für Anweisungen standen, sodass eine Person ein Programm lesen und ändern konnte, ohne einen Stecker zu berühren.
Zunächst ist eine CPU (Central Processing Unit) der Chip im Zentrum Ihres Computers, und sie erledigt eine Aufgabe: Sie führt eine lange Liste kleiner Befehle aus, die Anweisungen genannt werden, eine nach der anderen, Milliarden pro Sekunde. Jede Anweisung ist für sich genommen einfach, etwa zwei Zahlen addieren, einen Wert verschieben oder an eine andere Stelle springen.
Assembly ist die Form der Anweisungen, die eine CPU ausführt und die ein Mensch lesen kann. Jede Zeile ist (fast) eine Maschinenanweisung. Es gibt keine Schleifen, Objekte oder Strings. Sie bewegen Zahlen zwischen Registern, kleinen Speicherplätzen innerhalb des Prozessors, und dem Speicher.

Der EDSAC führte David Wheelers Initial Orders aus, eines der ersten Programme, die geschriebene Anweisungen in Maschinencode übersetzten.
Jeder Prozessor braucht ein Programm, das geschriebene Anweisungen liest und die rohen Bits erzeugt, die die Hardware ausführt: einen Assembler. Der Assembler auf dieser Seite zielt auf einen einzigen Befehlssatz ab.
Dieser Simulator verwendet RISC-V, einen modernen Befehlssatz, der in echten Chips verwendet und an Universitäten gelehrt wird. Was Sie hier lernen, lässt sich direkt auf Hardware anwenden.

RISC-V ist eine offene Befehlssatzarchitektur. Jeder darf ihre veröffentlichte Spezifikation in Hardware implementieren, und es ist keine Gebühr und keine Erlaubnis erforderlich.
Jedes Design eines Befehlssatzes muss entscheiden, wie viel Arbeit eine einzelne Anweisung leistet. CISC-Chips (Complex Instruction Set Computer), einschließlich der x86-Architektur, die in den meisten Desktop- und Laptop-Computern zu finden ist, stecken eine große Menge Arbeit in jede Anweisung. Eine Anweisung könnte einen Wert aus dem Speicher lesen, eine arithmetische Operation darauf ausführen und das Ergebnis zurückschreiben, alles in einem einzigen Schritt. RISC-V folgt dem Design, für das Patterson & Ditzel, 1980 argumentierten: Jede Anweisung führt eine einfache Operation aus, und jedes komplexe Verhalten entsteht durch die Kombination vieler dieser Anweisungen.
RISC steht für Reduced Instruction Set Computer. Die Hardware ist darauf ausgelegt, eine kleine Gruppe einfacher Anweisungen mit hoher Geschwindigkeit auszuführen. Komplexes Verhalten entsteht durch die Kombination dieser einfachen, schnellen Schritte.
Kathleen Booths Assembler für den ARC (Booth, 1947) und David Wheelers Initial Orders für den EDSAC (Wilkes, Wheeler & Gill, 1951) zählen zu den frühesten funktionierenden Assemblern, und Historiker debattieren weiterhin, welcher zuerst kam. RISC-V, der Befehlssatz, den dieser Simulator ausführt, definiert eine kleine, offene Liste von Anweisungen, die jeder implementieren kann (Asanović & Patterson, 2014). Jede Lektion ab diesem Punkt lehrt diesen Befehlssatz direkt.
Referenzen
- [1]IEEE Computer Society. Women of ENIAC.
- [2]Booth, K. General Considerations in the Design of an All Purpose Electronic Digital Computer. 1947.
- [3]Wilkes, M. V., Wheeler, D. J., Gill, S. The Preparation of Programs for an Electronic Digital Computer. Addison-Wesley, 1951.
- [4]Patterson, D. A., Ditzel, D. R. The Case for the Reduced Instruction Set Computer. ACM SIGARCH Computer Architecture News, 1980.
- [5]Asanović, K., Patterson, D. A. Instruction Sets Should Be Free: The Case For RISC-V. UCB/EECS-2014-146, 2014.
- [6]Glen Beck and Betty Snyder program the ENIAC, building 328, Ballistic Research Laboratory. U.S. Army photo, public domain.
- [7]Maurice Wilkes examining a mercury delay line during the construction of EDSAC. Computer Laboratory, University of Cambridge, CC BY 2.0.
- [8]Yunsup Lee holding a RISC-V prototype chip, 2013. CC0.
