CPUs Verwenden Sie eine Reihe von Anweisungen, die
Maschinencode bezeichnet werden , die binären Zahlen (Sequenzen von 0 und 1s) sind. Diese Anweisungen sind sehr einfach und führen einfache Operationen wie:
* arithmetische und logische Operationen: Hinzufügen, Subtrahieren, Multiplizieren, Teilen, Vergleich (größer als, weniger als, gleich), logisch und oder, oder nicht usw.
* Datenbewegung: Verschiebung von Daten zwischen Registern (interner CPU -Speicher), Speicherorte und Eingabe-/Ausgabegeräte. Dies beinhaltet das Laden von Daten aus dem Speicher in ein Register, das Speichern von Daten aus einem Register in den Speicher und das Übertragen von Daten zwischen den Registern.
* Kontrollfluss: Ändern der Reihenfolge, in der Anweisungen ausgeführt werden. Dies beinhaltet:
* Sprung/Zweig: Ändern des Anweisungszeigers in eine andere Adresse im Speicher und ermöglichen eine bedingte Ausführung (IF-Then-ELSE-Anweisungen) und Schleifen.
* Anruf/Rückgabe: Rufen Sie Unterprogramme (Funktionen) an und kehren Sie zum Punkt des Anrufs zurück.
* Eingabe/Ausgabe (E/O): Kommunikation mit externen Geräten wie Tastaturen, Mäusen, Anzeigen, Festplatten und Netzwerkschnittstellen.
* Systemsteuerung: Anweisungen zum Verwalten der CPU selbst, z. B. die Behandlung von Interrupts (Signale, die angeben, dass Ereignisse sofort Aufmerksamkeit erfordern) und das Ändern von CPU -Modi (z. B. Wechsel zwischen dem Benutzer und dem Kernelmodus).
Diese grundlegenden Anweisungen werden kombiniert, um komplexere Operationen und Programme zu erstellen. Es ist wichtig zu beachten, dass die * spezifischen * Anweisungen zwischen verschiedenen CPU-Architekturen (x86, Arm, RISC-V usw.) erheblich variieren. Jede Architektur verfügt über eine eigene Anweisungs -Architektur (ISA), in der die von ihnen verständlichen Anweisungen definiert werden. Während die Kategorien von Anweisungen ähnlich sind, unterscheiden sich die genauen Opcodes (binäre Darstellungen der Anweisungen) und ihre Funktionen.
Programmierer arbeiten selten direkt mit Maschinencode. Stattdessen verwenden sie höhere Programmiersprachen (wie C ++, Java, Python), die dann zusammengestellt oder in Maschinencode interpretiert werden, die die CPU ausführen kann. Assembler übersetzen die Montagesprache (eine menschlich-lesbare Darstellung des Maschinencode) in den Maschinencode.