Die Sprache, die von Computern direkt erkannt werden kann, ist „Maschinensprache“. Maschinensprache ist eine Sprache, die direkt durch Computeranweisungscode abgekürzt und in Binärform ausgedrückt wird. Sie ist die einzige Sprache, die ein Computer direkt erkennen und ausführen kann.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Dell G3-Computer.
Die Sprache, die Computer direkt erkennen und ausführen können, ist „Maschinensprache“.
Maschinensprache ist eine Programmiersprache oder ein Befehlscode, den die Maschine ohne Übersetzung direkt erkennen kann. Jeder Operationscode verfügt über eine entsprechende Schaltung im Computer, um ihn zu vervollständigen, oder er kann von der Maschine ohne Übersetzung direkt verstanden und akzeptiert werden Sprache oder Anweisungscode. Maschinensprache verwendet absolute Adressen und absolute Opcodes. Verschiedene Computer verfügen über eigene Maschinensprachen, also Befehlssysteme. Aus Sicht der Verwendung ist Maschinensprache die Sprache der niedrigsten Ebene.
Eine Anweisung ist eine Anweisung in Maschinensprache. Es handelt sich um eine Reihe sinnvoller Binärcodes. Das Grundformat der Anweisung ist wie folgt: Opcode-Feld und Adresscode-Feld Der Adresscode gibt den Operanden oder die Adresse des Operanden an.
Eine maschinensprachliche Anweisung ist ein Binärcode, der aus einem Opcode und einem Operanden besteht. 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. [2] 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: Opcode-Feld und Adressfeld. Entsprechend der Anzahl der im Adressfeld beteiligten Adressen lauten die gängigen Befehlsformate wie folgt.
① Drei-Adressen-Anweisung: 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.
②Zwei-Adressen-Anweisung: A1 im Adressfeld bestimmt die erste Operandenadresse und A2 bestimmt sowohl die zweite Operandenadresse als auch 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. Es gibt kein Adressfeld.
⑤Variable Adressnummernanweisung: 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.
Erweitern Sie Ihr Wissen:
Um Programme in Maschinensprache zu schreiben, müssen sich Programmierer zunächst alle Befehlscodes des verwendeten Computers und die Bedeutung der Codes merken. Bei der manuellen Programmierung müssen Programmierer die Speicherzuweisung sowie die Eingabe und Ausgabe aller Anweisungen und Daten selbst verwalten und sich außerdem den Status der Arbeitseinheit merken, die in jedem Schritt des Programmierprozesses verwendet wird. Das ist eine sehr mühsame Arbeit. Die zum Schreiben eines Programms benötigte Zeit 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. Mit Ausnahme von Profis von Computerherstellern lernt die überwiegende Mehrheit der Programmierer keine Maschinensprache mehr.
Verwandte Empfehlungen: „Einführung in die Programmierung“
Das obige ist der detaillierte Inhalt vonWelche Sprache kann von Computern direkt erkannt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!