003
12.07.2004, 03:06 Uhr
0xdeadbeef
Gott (Operator)
|
Assembly ist keine Maschinensprache. Assembly ist sozusagen die erste Low-Level-Programmiersprache, die über die Maschinensprache hinausgeht. Im Grunde ist es eine Art lesbarere (als Maschinencode) Programmiersprache für Registermaschinen. Dadurch, dass verschiedene Registermaschinen mitunter unterschiedlich aufgebaut sind (z.B. CISC vs. RISC, oder konkret x86 vs. PPC), ist Assembly in aller Regel nicht portabel (will sagen, jede Architektur hat ihre eigene Assembly-Sprache) - einer der Gründe, weswegen Assembly heutzutage kaum noch benutzt wird.
Historisch gesehen sieht das etwa so aus, dass in der Computer-Altsteinzeit die Computer noch direkt (also binär) programmiert wurden. Assembly war als abstraktes Konzept zwar schon bekannt, aber die Computer selbst wurden from scratch programmiert - im Endeffekt hieß das, dass die Professoren den Kram in Assembly schrieben und die Assistenten den Kram nach binär übersetzten und in den Computer eingaben. Irgendwann hat dann ein findiger Assistent ein Programm geschrieben, dass Assembly in Maschinencode umwandelt, und das war dann der erste Assembler, und damit im Grunde auch ein Compiler. Heutige Compiler für High-Level-Sprachen arbeiten meistens in zwei Stufen, indem sie den High-Level-Code nach Assembly übersetzen und danach Assembly in Maschinencode.
Die meisten C/C++-Compiler bieten Möglichkeiten, Assembly einzubinden, aber die eigentliche Einbindung ist compilerabhängig. Außerdem ist es heutzutage nur sehr selten erforderlich, noch Assembly zu schreiben - die einzig wirklich sinnvolle Anwendung ist wohl Kernel-Programmierung. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 12.07.2004 um 03:07 Uhr von 0xdeadbeef editiert. |