Da es sich bei der Maschinensprache um eine Reihe von Maschinenanweisungen handelt, die durch Binärcode dargestellt werden und die ein Computer direkt erkennen und ausführen kann, handelt es sich um Daten, die die CPU des Computers direkt interpretieren kann und die von Computerdesignern verwendet werden Die Hardwarestruktur eines Computers gibt dem Computer seine Betriebsfunktionen.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, DELL G3-Computer.
Eine Sprache, die ein Computer direkt erkennen und ausführen kann, ist eine Maschinensprache. Maschinensprache ist eine Reihe von Maschinenanweisungen, die in Binärcode ausgedrückt werden und von einem Computer direkt erkannt und ausgeführt werden können. Bei diesem Befehlssatz, Maschinencode genannt, handelt es sich um Daten, die direkt von der CPU des Computers interpretiert werden können.
Maschinensprache ist die Bedienfunktion, die der Computerdesigner dem Computer durch die Hardwarestruktur des Computers verleiht. Maschinensprache zeichnet sich durch Flexibilität, direkte Ausführung und hohe Geschwindigkeit aus. Die Maschinensprachen verschiedener Computertypen sind nicht kompatibel. Ein Programm, das gemäß den Maschinenanweisungen eines Computertyps kompiliert wurde, kann nicht auf einem anderen Computertyp ausgeführt werden.
Beim Schreiben von Programmen in Maschinensprache müssen sich Programmierer zunächst alle Befehlscodes des verwendeten Computers und die Bedeutung der Codes merken. Beim Programmieren müssen Programmierer die Speicherzuweisung sowie die Eingabe und Ausgabe jeder Anweisung und aller Daten selbst verwalten und sich außerdem den Status der verwendeten Arbeitseinheit in jedem Schritt des Programmierprozesses merken.
Das ist eine sehr mühsame Aufgabe, und die Zeit, die zum Schreiben eines Programms benötigt wird, ist oft Dutzende oder Hundertfache länger als die tatsächliche Laufzeit. Darüber hinaus handelt es sich bei den kompilierten Programmen ausschließlich um Befehlscodes aus Nullen und Einsen, die nicht intuitiv und fehleranfällig sind. Mittlerweile erlernt die überwiegende Mehrheit der Programmierer, abgesehen von Fachleuten von Computerherstellern, keine Maschinensprache mehr.
Eine Anweisung ist eine Anweisung in Maschinensprache, bei der es sich um eine Reihe sinnvoller Binärcodes handelt. Die von verschiedenen Computerfirmen entwickelten und hergestellten Computer unterscheiden sich in der Anzahl und Funktion der Befehle, Befehlsformaten, Adressierungsmethoden und Datenformaten. Aus dem Entwicklungsprozess von Computern ist ersichtlich, dass aufgrund der schnellen Entwicklung der grundlegenden Hardware, aus der Computer bestehen, und des schnellen Austauschs von Computern ein Problem besteht, wie Software mit der Hardware mithalten kann.
Wenn eine neue Maschine auf den Markt kommt und zur Nutzung ausgeliefert wird, kann den Benutzern nur eine kleine Menge an Systemsoftware (z. B. Betriebssystem usw.) zur Verfügung gestellt werden. Eine große Menge an Software wird ständig bereichert, insbesondere Anwendungen, und zwar erheblich Ein Teil davon wird von Benutzern bei der Nutzung der Maschine kontinuierlich erzeugt. Um das Problem zu lindern, dass Originalanwendungen aufgrund der Einführung neuer Maschinen nicht weiter verwendet werden können, wenn verschiedene Computerunternehmen dieselben Computerserien produzieren, obwohl ihre Hardware-Implementierungsmethoden unterschiedlich sein können, sind das Befehlssystem, das Datenformat usw /O-System usw. bleiben gleich, sodass die Software vollständig kompatibel ist.
Erweiterte Kenntnisse: Maschinensprachliches Befehlsformat
Maschinensprachlicher Befehl ist ein Binärcode, der aus zwei Teilen besteht: Opcode und Operand. Der Opcode gibt die Operation der Anweisung an. Er ist ein Schlüsselwort in der Anweisung und kann nicht voreingestellt werden. Der Operand stellt den Operanden der Anweisung dar. Das Befehlsformat des Computers steht in engem Zusammenhang mit der Wortlänge, der Speicherkapazität und der Befehlsfunktion der Maschine. Im Hinblick auf die Vereinfachung des Programmdesigns, die Erhöhung der Parallelität grundlegender Operationen und die Verbesserung der Befehlsfunktionalität sollten Anweisungen eine Vielzahl von Informationen enthalten. Da jedoch in einigen Anweisungen ein Teil der Informationen möglicherweise nutzlos ist, wird dadurch der von der Anweisung belegte Speicherplatz verschwendet und die Anzahl der Speicherzugriffe erhöht, was sich tatsächlich auf die Geschwindigkeit auswirken kann. Wie gestaltet man daher das Befehlsformat vernünftig und wissenschaftlich, sodass der Befehl nicht nur genügend Informationen liefern kann, sondern auch seine Länge so weit wie möglich an die Wortlänge der Maschine anpassen kann, um Speicherplatz zu sparen und die Wertzeit zu verkürzen? und die Leistung der Maschine verbessern. Dies ist ein wichtiges Thema bei der Gestaltung von Befehlsformaten.
Computer verarbeiten verschiedene Daten, indem sie Anweisungen ausführen. Um die Datenquelle, das Ziel der Operationsergebnisse und die durchgeführte Operation anzugeben, muss eine Anweisung die folgenden Informationen enthalten:
(1) Operationscode. Es legt die Art und Funktion der Operation fest. Ein Computer kann Dutzende bis Hunderte von Anweisungen haben, jede Anweisung hat einen entsprechenden Operationscode und der Computer führt verschiedene Operationen durch, indem er den Operationscode erkennt.
(2) Die Adresse des Operanden. Über diese Adresse kann die CPU die benötigten Operanden erhalten.
(3) Speicheradresse des Operationsergebnisses. Das Ergebnis der Verarbeitung des Operanden wird zur Wiederverwendung an dieser Adresse gespeichert.
(4) Die Adresse der nächsten Anweisung. Beim Ausführen eines Programms werden die meisten Anweisungen der Reihe nach aus dem Hauptspeicher abgerufen und ausgeführt. Nur wenn eine Übertragungsanweisung auftritt, ändert sich die Ausführungsreihenfolge des Programms. Um die Länge der Anweisung zu komprimieren, kann ein Programmzähler (ProgramCounter, PC) zur Speicherung der Anweisungsadresse verwendet werden. Jedes Mal, wenn ein Befehl ausgeführt wird, ist die Befehlsadresse des PCs automatisch +1 (vorausgesetzt, der Befehl belegt nur eine Hauptspeichereinheit) und gibt die Adresse des nächsten auszuführenden Befehls an. Wenn ein Übertragungsbefehl auftritt, wird die Übertragungsadresse verwendet, um den Inhalt des PCs zu ändern. Aufgrund der Verwendung von PC muss die Adresse der nächsten auszuführenden Anweisung nicht explizit in der Anweisung angegeben werden.
Eine Anweisung enthält tatsächlich zwei Arten von Informationen, nämlich den Betriebscode und den Adresscode. Der Operationscode (OperationCode, OP) wird verwendet, um die von der Anweisung auszuführende Operation darzustellen (z. B. Addition, Subtraktion, Multiplikation, Division, Datenübertragung usw.). Seine Länge hängt von der Anzahl der Anweisungen im Anweisungssystem ab . Der Adresscode wird verwendet, um den Operanden des Befehls zu beschreiben. Er gibt entweder direkt den Operanden an oder gibt die Speicheradresse oder Registeradresse des Operanden an (d. h. den Registernamen).
Die Anweisung besteht aus zwei Teilen: dem Opcode-Feld und dem Adressfeld. Entsprechend der Anzahl der im Adressfeld beteiligten Adressen lauten die gängigen Befehlsformate wie folgt.
Anweisung mit drei Adressen: A1 und A2 im allgemeinen Adressfeld bestimmen die erste bzw. zweite Operandenadresse und A3 bestimmt die Ergebnisadresse. Die Adresse des nächsten Befehls wird normalerweise sequentiell vom Programmzähler angegeben.
Anweisung mit zwei Adressen: A1 im Adressfeld bestimmt die erste Operandenadresse und A2 bestimmt gleichzeitig die zweite Operandenadresse und die Ergebnisadresse.
Einzeladressenanweisung: A im Adressfeld bestimmt die Adresse des ersten Operanden. Die Verwendung eines bestimmten Registers zum Speichern des zweiten Operanden und des Operationsergebnisses wurde korrigiert. Ihre Adressen sind daher implizit in der Anleitung angegeben.
Nulladressenanweisung: In einem Stapelcomputer werden die Operanden im Allgemeinen in den beiden Einheiten oben auf dem Push-Down-Stack gespeichert und die Ergebnisse werden oben auf dem Stapel platziert. Die Adressen sind also implizit Die meisten Anweisungen haben nur Opcodes, aber keine Adressdomäne.
Anweisungen für variable Adressnummern: Die Anzahl der im Adressfeld beteiligten Adressen ändert sich mit der Operationsdefinition. Beispielsweise kann die Anzahl der Adressen in den Anweisungen einiger Computer zwischen 0 und 6 liegen.
Weitere Informationen zu diesem Thema finden Sie in der Rubrik „FAQ“!
Das obige ist der detaillierte Inhalt vonWarum ist Maschinensprache eine Sprache, die Computer direkt erkennen und ausführen können?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!