Gegenüberstellung
Quellcode
|
Vorteile
|
Nachteile
|
Assembler
|
- Prinzipiell der schnellste bzw kürzeste Code, weil man volle Kontrolle über die Maschine hat
|
- komplette Neuimplementierung bei Portierung auf eine andere Architektur
- bein Umstieg auf eine andere Architektur muss zuerst ein anderen Assembler-Code erlernt werden
- sogar Portierung innerhalb der gleichen Controllerfamilie (z.B. AVR) erfordert Anpassungen wegen unterschiedlichem Befehlssätze
- aufwändig in der Entwicklung
|
Hochsprache
|
- gute Portierbarkeit
- schnelle Entwicklung
- der Compiler kann bekannte Hardware-Bugs umschiffen
- beim Upgrade auf eine neue Compiler-Version mit besseren Optimierungsstrategien hat man die Optimierungen, ohne die Quelle ändern zu müssen
|
- ineffizienterer Code
- Unsicherheit, wie der Code genau aussieht
- Compiler sind oft wesentlich komplexer aufgebaut als Assembler, was die Wahrscheinlichkeit von Fehlern im Compiler im Vergleich zu einem Assembler erhöht.
|
Intermix Hochsprache + Assembler
|
- Vorteile von Hochsprache und Assembler
- nur die Assembler Module/Schnippsel sind schwer portierbar
- Assembler kann ganz zielgerichtet an kritischen Stellen eingesetzt werden
- Quellcode bleibt gut lesbar
|
- Nachteile von Hochsprache und Assembler
- die Konvention der Hochsprache muss genau befolgt werden (Registerverwendung bei Funktionsaufrufen, etc.)
- es sind zwei Sprachen zu beherrschen
- Objektformat bzw. Compiler und Assembler müssen zueinander passen
- Je nach verwendeter Mix-Technik (Inline Assembler, Link mehrerer Objekte, dynamisch linkender Bootloader) sind noch zusätzliche Kenntnisse erforderlich.
|