Fu-logo-text-2x
Drucken

Informatik für das Lehramt (B.Sc.)

Diese Seiten können nicht richtig dargestellt werden, da Sie Ihren Internet Explorer mit aktivierter Kompatibiltätsansicht verwenden. Wir empfehlen 'fu-berlin.de' aus der Liste der Websites mit aktivierter Kompatibilitätsansicht zu entfernen:

  1. Blenden Sie bitte in Ihrem Internet Explorer die Menüleiste ein, indem Sie entweder 'Alt' drücken oder in der Adressleiste mit der rechten Maustaste klicken und dann 'Menüleiste' auswählen.
  2. Klicken Sie auf 'Extras' und wählen das Menü 'Einstellungen der Kompatibilitätsansicht' aus.
  3. Wählen Sie unter 'Zur Kompatibilitätsansicht hinzugefügte Websites' 'fu-berlin.de' aus.
  4. Klicken Sie auf 'Entfernen'.

Assembler (3. Semester)

Assembler ist eine grundlegende Programmiersprache, welche sehr nahe an der Maschinensprache liegt und somit keine höheren Funktionalitäten wie Schleifen oder Klassen bereitstellt. Diese Strukturen müssen im Programm selbst gebaut werden.

Bei Assemblercode liegen alle Variablen in Speicherzellen, den sogenannten Registern.


Zu den Befehlen die Assembler zur Verfügung stellt sind:

  • MOV R1 x - move: schreibt die Zahl x in das Register R1
  • ADD R1 R2 - add: addiert den Wert aus dem Register R1 und den Wert von Register R2 und speichert das Ergebnis in R1
  • DEC R1 - decrease: verringert den Wert im Register R1 um 1
  • JNZ Loop - jump if not zero: falls das Ergebnis des letztens Befehls nicht 0 ist, wird an die Stelle Loop im Code gesprungen und von dort weiter ausgeführt, ansonsten wird diese Anweisung übersprungen
  • RET - return: beendet das Programm erfolgreich

Seien im Folgendem Assembler-Beispiel A, B und C Register:

MOV A 5

MOV B 7

MOV C 0

Loop: ADD C A

          DEC B

          JNZ Loop

          RET

Was steht im Register C, nachdem das obige Codebeispiel ausgeführt wurde?

In dem Assemblercode wird eine Multiplikation durchgeführt.

Im Register C wird solange der Wert vom Register A aufaddiert bis im Register B die 0 steht (der Wert in B wird nach jeder Addition um 1 verringert).

Das bedeutet, dass im Register C 7−mal die 5 aufaddiert wird.

Also lautet das Endergebnis: 5 × 7 = 35