|
|
Zeile 2: |
Zeile 2: |
| | | |
| {| {{Blauetabelle}} | | {| {{Blauetabelle}} |
| + | |- bgcolor="#ccccff" |
| ! | Quellcode | | ! | Quellcode |
| ! | Vorteile | | ! | Vorteile |
| ! | Nachteile | | ! | Nachteile |
− | |- valign="top" | + | |- valign="top" |
| | Assembler | | | Assembler |
| | <!--------------------- + Assembler --> | | | <!--------------------- + Assembler --> |
Version vom 13. Dezember 2005, 10:50 Uhr
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.
|