Maschinencode
Kurzbeschreibung
Maschinencode ist eine Abfolge von Instruktionen, die von der CPU direkt, ohne Umwege durch compilieren, ausgeführt werden können. Es ist ein Befehlssatz, mit deren Hilfe die CPU programmierbar wird.
Beschreibung
Eine CPU stellt(oder implementiert) eine bestimmte Schnittstelle, die unter ISA (Instruktion Set Architekture) aufgefasst wird. Dazu gehören z.B Registeranzahl,Speichernutzung, der Instruktionssatz ,der Aufbau einer einzelnen Instruktion usw. Erst mit diesem Wissen können Programmierer bzw. Compilerhersteller ihre Programme für diese CPU anpassen/entwickeln.
Die Zusammensetzung solcher Instruktionen ist von der ISA vorgegeben und wird von den CPU-Herstellern implementiert (oder auch andersrum: sie geben die ISA vor). Dabei wird die Codierung einzelner Befehlsteile meistens möglichst "effizient" vorgenommen, um diese Intruktionen möglichst kurz zu halten.Sie können auch unterschiedlich lang sein. Beispielsaufbau einer solchen Intruktion (im Binärformat):
0111 0010
^ ^
| | Kodierung: womit soll sie durchgeführt werden (Register1, Register2)
|
Kodierung: welche Operation durchgeführt werden soll (z.B Addition)
0110 0010 0000 0100 0000 0000 0000 0100 0000 0000
^ ^ |Adresse im Speicher|
| |
| in welches Register soll geladen werden
Kodierung z.B zum Laden von Daten aus dem Speicher
Je nach CPU-Architektur (RISC/CISC) werden solche Instruktionen entweder direkt durch die CPU ausgeführt(RISC: UltraSparc) oder wiederum interpretiert und durch Microprogramme (in der CPU direkt gespeicherte Programmcodes) umgesetzt (CISC: AMD/Intel). Damit gehört Maschinencode nicht unbediengt zu der "niedrigsten Ebene" der Programmierung - allerdings meistens der niedrigsten, zu der man einen Zugang als Entwickler hat.
|