Assembler

Assembler ist eine maschinennahe Programmiersprache, gehört also der 2. Generation von Programmiersprachen an. Alle Prozessorfamilien haben eigene, leicht unterschiedliche Befehlssätze. Die mnemonischen Symbole und symbolischen Adressen (Operanden) stehen für Kombinationen aus "1" und "0". Dadurch lässt sich der Code einfach in Maschinensprache (1. Generation von Programmiersprachen) übersetzten, dies geschieht durch den Assembler.

Assembler nutzt alle Verarbeitungsmöglichkeiten des Mikroprozessors und steuert auch die Hardware direkt an.


Vorteil

  • sehr schneller Code
  • weniger Speicherplatz nötig
  • aufgrund der Nähe zur Maschinensprache kein weiteres Programm wie Compiler nötig

Nachteile

  • komplexe Programmiersprache
  • schwer erlernbar
  • aufwändige Programmierung
  • längerer Quellcode als bei Sprachen höherer Generation
  • sehr unübersichtlicher Code
  • detaillierteres Verständnis der Funktions- und Arbeitsweise des Prozessors notwendig
  • Programm aufgrund unterschiedlicher Befehlssätze nur für eine Prozessorfamilie geeignet

 

C

C ist eine Programmiersprache der 3. Generation. Sie wird vorwiegend zur Hardware-Entwicklung verwendet, ist allerdings nicht so maschinennah wie die Assemblersprache.
Zum Vergleich: ein Befehl in C besteht in Assembler aus mehreren Befehlen.

C muss von einem Compiler in Maschinensprache übersetzt werden, damit der Code ausgeführt werden kann. Dafür ist C hardwareunabhängig.


Vorteil

  • leichter erlernbar
  • einfach verständlicher Syntax
  • standardisiert
  • schnellere und einfachere Programmierung
  • Aufgabe eines Programms schneller erkennbar
  • auf andere Microcontroller übertragbar
  • Verfügbarkeit vieler nutzbarer Bibliotheken

Nachteile

  • kann zu langsameren, ineffizienteren Programmen führen
  • mehr Speicherplatz benötigt
  • Compiler (Übersetzer) notwendig, da keine Maschinensprache
  • weitere Hardware- bzw. Software nötig

 

Warum C und nicht Assembler:

  • große, komplexe Programme sind einfacher zu schreiben, lesen und anzupassen
  • Arbeitsteilung durch Einbinden von Programmen
  • Speicherkapazitäten werden größer, Speicherkosten werden kleiner
  • Minimierung von Speicherkosten und Laufzeiten selten gegenüber dem Aufwand gerechtfertigt (z.B.: bei Hochleistungsrechnern, Echtzeitsystemen, eingebetteten Systemen)
  • aktuelle Compiler sind sehr weit ausgereift und leistungsfähig



Arduino IDE

Arduino IDE ist eine Programmierumgebung für Arduino-Boards. Hier wird eine vereinfachte C-Programmiersprache namens Sketch verwendet. Zum Beispiel werden die Pins eines Mikrocontroller immer separat angesteuert.

Nachfolgend ein einfaches Programm aus den Beispielen der Arduino IDE, dessen Funktion darin besteht, eine LED Blinken zu lassen.

Abb.: Quellcode LED-Blinken; Quelle: BBS2 Wolfsburg



Atmel Studio

Atmel Studio ist eine komplexere, hardwarenähere Programmierumgebung, die auch auf C basiert und zur Programmierung von Mikrocontrollern verwendet wird. Hier werden die Pins in Registern angesprochen, welche immer eine Gruppe von Pins zusammenfassen.

Hier wird das Programmbeispiel von Arduino IDE in der Programmierumgebung Atmel Studio dargestellt.

Abb.: Quellcode LED-Blinken mit Atmel Studio; Quelle: BBS2 Wolfsburg

Zuletzt geändert: Montag, 21. Februar 2022, 07:55