Was ist ein Anweisungsregister?

In Bezug auf Computerhardware ist ein Befehlsregister ein Element in der Zentraleinheit (CPU) eines Computers oder einer anderen Vorrichtung, die den Programmierbefehl enthält, der zu Beginn des nächsten Taktzyklus ausgeführt wird, wie es von anderen Teilen des Befehls vorgegeben wird ZENTRALPROZESSOR. Andere Elemente der CPU, wie z. B. der Befehlsdecodierer, stützen sich auf das Befehlsregister, um diese Informationen zu speichern, damit sie decodiert, aufgelöst und schließlich ausgeführt werden können. Bei einigen Typen von Mikroprozessorarchitekturen kann es mehr als ein Befehlsregister geben, sodass mehrere Befehle gleichzeitig verarbeitet werden können, wodurch ein als Pipeline bezeichneter Assembler-Logikstil entsteht. Im Allgemeinen werden dem Befehlsregister neue Befehle durch einen anderen Teil der CPU, der als Programmzähler bekannt ist, gegeben, der einem sehr ähnlichen Zweck dient, aber mit dem nächsten Befehl fortfahren kann, während Informationen ausgeführt werden, die das Befehlsregister enthält.

Ein Register ist eine Reihe von physischen Schaltern auf einem Mikroprozessor oder einer Leiterplatte, die ein- oder ausgeschaltet werden können, sodass jeder Schalter einem Bit entspricht. Wenn mehrere der Schalter, auch Latches genannt, verbunden werden, können sie Binärdaten wie Zahlen speichern, die in Speicheradressen oder Anweisungscodes umgewandelt werden können. Innerhalb der CPU kann das Befehlsregister entweder die Adresse des ausgeführten Befehls im Computerspeicher oder aus Effizienzgründen den Befehl selbst enthalten. Diese Information wird durch ein anderes Register, das als Programmzähler bekannt ist, an das Register weitergeleitet, das in den meisten Fällen vorwärts zum nächsten auszuführenden Befehl springt, nachdem der aktuelle Befehl weitergeleitet wurde.

Die von den Registern verarbeiteten Befehlstypen sind im Allgemeinen Befehle in Assemblersprache niedriger Ebene, die schließlich in Maschinencode oder Bytecode übersetzt werden. Diese unterscheiden sich deutlich von Anweisungen in höheren Programmiersprachen, da die Montageanweisungen in einem sehr kleinen, direkten Maßstab ausgeführt werden. Ein Beispiel ist eine Codezeile auf hoher Ebene, die zwei Zahlen addiert und die Ergebnisse in einer Variablen speichert, für deren Ausdruck nur eine einzige Codezeile auf hoher Ebene erforderlich ist. Wenn der Code kompiliert wird, könnten ein Dutzend oder mehr Anweisungen generiert werden, um die Aufgabe abzuschließen, wobei jede Anweisung etwas Einfaches ist, beispielsweise das Mischen von Werten zwischen dem Arbeitsspeicher (RAM) des Computers und einem Dienstprogrammregister.

Sobald das Befehlsregister auf einen Befehl verweist, wird dieser an den Befehlsdecoder übergeben, damit der Befehl in Maschinencode umgewandelt werden kann. Verweise auf Speicherorte, die Variablen oder andere Informationen enthalten könnten, werden aufgelöst und diese Informationen werden manchmal in andere Register gestellt. Schließlich wird der eigentliche Befehl ausgeführt. Während dieser Zeit wird der Programmzähler von der CPU inkrementiert, um auf den nächsten Befehl zu zeigen, der vom Befehlsregister gehalten wird, damit der Vorgang wiederholt werden kann, bis das gesamte Programm ausgeführt wurde.

ANDERE SPRACHEN

War dieser Artikel hilfreich? Danke für die Rückmeldung Danke für die Rückmeldung

Wie können wir helfen? Wie können wir helfen?