Frage

Ich habe die Terminologien gehört. Registrieren, Hardware-Register, Programmregister, Registerdatei

Was ist der Unterschied zwischen all diese? Und in assebmly, was ist die Art des EAX-Registers? Programmregister?

War es hilfreich?

Lösung

Ein Register ist ein Speicherbereich in der CPU. Hier sind einige Definitionen:

  • Eine Registerdatei ist ein Array von Registern - siehe http://en.wikipedia.org/wiki / Register_file für eine vollständige Beschreibung.
  • Das EAX-Register ist das Akkumulatorregister der Intel x86-Familie von CPUs - es ist der Ort, wo ganze Zahl Mathematik gemacht wird
  • .
  • Das Programmregister (ich glaube, Sie Programmzähler bedeuten) ist ein Spezialregister, das die Adresse des nächsten Maschinencodebefehl enthält ausgeführt werden

Andere Tipps

Ein Register ist der einfachste Datenspeicher. Dies sind die wichtigsten Unterschiede.

Eine Registerdatei ist in der Regel eine große Sammlung von Registern in einer solchen Art und Weise organisiert, so dass sie für Berechnungen verwendet werden. In einem modernen Prozessor werden alle Berechnungen zwischen den Werten in mehreren Registern in einer Registerdatei gespeichert ist, ausgeführt.

Ein Hardware-Register bezieht sich allgemein auf Register, die Konfigurations- und Statusinformationen speichern. Dies ist für den Prozessor oder ein externes Hardware-I / O-Gerät sein könnte.

Ein Programmregister zum Programmzähler bezieht, ein spezielles Register, das die Speicherstelle des aktuellen Befehls speichert, die durch den Prozessor ausgeführt wird.

ein Register ist ein kleines bisschen Speicher, der in der CPU sitzt. und wird von Assemblersprache verwendet, um verschiedene Aufgaben zu erfüllen.

könnte es durch Programmregister meinen Sie Programmzähler sein?

Nun, haben Sie Universalregister, dann Register Sie haben die besondere Verwendung hat (zum Beispiel der Programmzähler-Register), und Sie verschiedene andere haben (Speicher / Segmentregister, SSE).

EAX, EBX, usw. sind die Standard-Mehrzweckregister. Sie können sie für verwenden, was auch immer Sie wollen. Üblicherweise wird der Rückgabewert soll in EAX zu setzen, aber das ist es im Grunde. Dann haben Sie den Stapelzeiger EBP, die zu Beginn des Stapels zeigt. Schließlich müssen Sie Zähler programmieren, die auf die aktuelle Anweisung verweist, EIP. Auf x86 gibt es einige Sonderfälle, in denen zwei Register fusioniert werden, wenn 64-Bit-Integer-Berechnungen zu tun. Weitere Sonderfälle sind für die Zeichenfolge Anweisungen. Wenn Sie sind Montag zu lernen, wäre die einfachste mit einem PowerPC zu beginnen, die mehr Register haben, und Sie sind frei, alle von ihnen ohne Einschränkungen verwendet werden.

Alle diese Register sind natürlich Hardware-Register, das heißt, sie werden in die CPU physisch gebaut;). Der Ort, an dem sie eine Registerdatei genannt wird

Die andere Art des Registers können Sie sehen, wenn Sie eine virtuelle Maschine, die Register verwendet ( Parrot ), man bekommt „virtuelle Register“, die Real-Register später zugeordnet sind. Dies ist ähnlich zu dem, was Sie tun können, wenn ein Compiler selbst zu schreiben, vorausgesetzt, dass Sie im Grunde eine unbegrenzte Anzahl von Registern (das heißt, Sie einen neuen auf jeder Nutzung erzeugen), und tun, um die Transformation zu realen Registern in einer anderen Phase (Registerzuweisung ).

A "Hardware-Register" könnte auch innerhalb einiger Hardware-Gerät an einen Ort beziehen. Zum Beispiel sieht ein UART (COM-Port) wie ein D-förmigen Verbinder mit 9 oder 25 Stiften von außerhalb des Schrankes, sondern an die Gerätetreiber es sieht aus wie mehrere Konfigurationsregister, ein Statusregister und Datenregister das nächste Zeichen halten an senden und das letzte Zeichen empfangen. (Ich habe weggelassen ein Los Detail dort.)

In der x86-Architektur dieser Register sind in der Regel in einem speziellen physikalischen Adressraum befindet, die mit E / A-Anweisungen zugegriffen wird. In anderen Plattformen ist es üblich, für Hardware-Register zu irgendeiner Ecke des normalen Speicherraum abgebildet werden. In jedem Fall eine der wichtigen Rollen eines Betriebssystems und seiner Gerätetreiber ist von Anwendungscode zu verhindern, um die Details, wo die Hardware-Register zu wissen, befinden, und was sie bedeuten.

Bei einigen Arten von Hardware-Geräten, ist die Unterscheidung zwischen Speicher und Hardware-Registern weniger klar. Zum Beispiel enthält Ihre Videoadapter einen Speicherblock als den Rahmenpuffer bekannt ist, die die Farbe und Helligkeitswerte für jedes einzelne Pixel enthält. Ist das Speicher ein großes Hardware-Register oder ist es nur ein Puffer, der einen interessanten Nebeneffekt hat?

In Bezug auf die Frage, gibt es zwei allgemeine Arten von Registern, die man beachten sollte:

  • Programmregister
  • Hardwareregister

Die Hardware-Register getaktet wird (aktualisiert Uhr tickt) und sind in dem physischen Entwurf von Prozessorschaltung verwendet.

Das Programm registriert sind Schreib-Lese-Speicher und werden in einer Registerdatei in der CPU befindet sich gehalten. Montage / Maschinencodebefehle zugreifen, diese Register durch Namen wie% eax,% esp,% rdi,% edi etc.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top