Einführung :
A Mikroprozessor ist ein vielseitiges, programmierbares, taktgesteuertes, registerbasiertes elektronisches Gerät, das binäre Anweisungen aus einem Speichergerät namens Speicher liest, binäre Daten als Eingabe akzeptiert, Daten gemäß diesen Anweisungen verarbeitet und Ergebnisse als Ausgabe bereitstellt. Ein 8085-Mikroprozessor ist ein 8-Bit-Mikroprozessor der zweiten Generation und bildet die Grundlage für die Untersuchung und Verwendung aller auf dem Markt erhältlichen Mikroprozessoren.
Warum Register im 8085-Mikroprozessor verwenden?
Linux-Host
Hier sind einige Gründe, warum Register im 8085-Mikroprozessor verwendet werden:
int zu string c++
- Temporärer Speicher: Register werden als temporäre Speicherorte für Daten verwendet, die vom Mikroprozessor verarbeitet werden müssen. Wenn beispielsweise arithmetische Operationen ausgeführt werden, werden die Operanden normalerweise in Registern gespeichert.
- Adressierung: Register werden zur Adressierung von Speicherplätzen im 8085-Mikroprozessor verwendet. Das Programmzählerregister (PC) verfolgt den Speicherort des aktuellen Befehls, während das Stapelzeigerregister (SP) den oberen Rand des Stapels verfolgt.
- Eingabe/Ausgabe: Register werden für die Kommunikation mit Eingabe-/Ausgabegeräten (E/A) verwendet. Beispielsweise wird das Akkumulatorregister (A) für die Kommunikation mit dem Datenbus verwendet, der mit E/A-Geräten verbunden ist.
- Statusinformationen: Register werden zum Speichern von Statusinformationen über den Zustand des Mikroprozessors verwendet. Das Flag-Register speichert beispielsweise Informationen über die Ergebnisse arithmetischer und logischer Operationen, einschließlich der Frage, ob ein Ergebnis negativ, Null oder Übertrag ist.
- Optimierung: Register werden verwendet, um die Leistung des Mikroprozessors zu optimieren. Durch die Verwendung von Registern zum Speichern häufig verwendeter Daten und Anweisungen kann der Mikroprozessor schneller auf diese Informationen zugreifen, als wenn er sie aus dem Speicher abrufen müsste.
Register in 8085:
(a) Allzweckregister – Der 8085 verfügt über sechs Allzweckregister zum Speichern von 8-Bit-Daten; Diese werden als B, C, D, E, H und L identifiziert. Diese können als Registerpaare – BC, DE und HL – kombiniert werden, um eine 16-Bit-Operation auszuführen. Diese Register werden zum Speichern oder Kopieren temporärer Daten mithilfe von Anweisungen während der Ausführung des Programms verwendet.
(b) Zweckgebundene Register –
- Akkumulator: Der Akkumulator ist ein 8-Bit-Register (kann 8-Bit-Daten speichern), das Teil der arithmetischen und logischen Einheit (ALU) ist. Nach der Durchführung arithmetischer oder logischer Operationen wird das Ergebnis im Akkumulator gespeichert. Akkumulator wird auch als Register A definiert. Flag-Register:
Das Flag-Register ist ein Spezialregister und unterscheidet sich grundlegend von anderen Registern im Mikroprozessor. Es besteht aus 8 Bits und nur 5 davon sind nützlich. Die anderen drei bleiben leer und werden in zukünftigen Intel-Versionen verwendet. Diese 5 Flags werden gesetzt oder zurückgesetzt (wenn der Wert des Flags 1 ist, wird es als gesetzt bezeichnet, und wenn der Wert 0 ist, wird es als zurückgesetzt bezeichnet). ) nach einer Operation entsprechend dem Datenzustand des Ergebnisses im Akkumulator und anderen Registern. Die 5 Flag-Register sind:- Vorzeichen-Flag: Es belegt das siebte Bit des Flag-Registers, das auch als höchstwertiges Bit bezeichnet wird. Es hilft dem Programmierer zu wissen, ob die im Akkumulator gespeicherte Zahl positiv oder negativ ist. Wenn das Vorzeichen-Flag gesetzt ist, bedeutet dies, dass die im Akkumulator gespeicherte Zahl negativ ist, und wenn es zurückgesetzt wird, ist die Zahl positiv. Null-Flag: Es belegt das sechste Bit des Flag-Registers. Es wird gesetzt, wenn die in der ALU durchgeführte Operation Null ergibt (alle 8 Bits sind Null), andernfalls wird es zurückgesetzt. Es hilft bei der Bestimmung, ob zwei Zahlen gleich sind oder nicht. Auxiliary Carry Flag: Es belegt das vierte Bit des Flag-Registers. Wenn in einer arithmetischen Operation ein Übertragsflag durch das dritte Bit erzeugt und an das vierte Bit weitergegeben wird, wird das Hilfsübertragsflag gesetzt. Wenn nicht, wird das Flag zurückgesetzt. Dieses Flag wird intern für BCD-Operationen (Binary-Coded Decimal Number) verwendet. Notiz - Dies ist das einzige Flag-Register in 8085, auf das der Benutzer nicht zugreifen kann. Paritätsflag: Es belegt das zweite Bit des Flagregisters. Dieses Flag testet die Anzahl der Einsen im Akkumulator. Wenn der Akkumulator eine gerade Anzahl von Einsen enthält, wird dieses Flag gesetzt und es wird von gerader Parität gesprochen. Wenn andererseits die Anzahl der Einsen ungerade ist, wird sie zurückgesetzt und man spricht von ungerader Parität. Carry Flag: Es belegt das nullte Bit des Flag-Registers. Wenn die arithmetische Operation zu einem Übertrag führt (wenn das Ergebnis mehr als 8 Bit beträgt), wird das Übertragsflag gesetzt; andernfalls wird es zurückgesetzt.
(c) Speicherregister – Es gibt zwei 16-Bit-Register, die zum Speichern von Speicheradressen verwendet werden. Die Größe dieser Register beträgt 16 Bit, da die Speicheradressen 16 Bit betragen. Sie sind :-
Variables globales Javascript
- Programmzähler: Dieses Register wird verwendet, um die Ausführung der Anweisungen zu sequenzieren. Die Funktion des Programmzählers besteht darin, auf die Speicheradresse zu zeigen, von der das nächste Byte abgerufen werden soll. Wenn ein Byte (Maschinencode) abgerufen wird, wird der Programmzähler um eins erhöht, um auf den nächsten Speicherort zu zeigen. Stapelzeiger: Wird als Speicherzeiger verwendet. Es zeigt auf einen Speicherort im Lese-/Schreibspeicher, den sogenannten Stapel. Während des Push- und Pop-Vorgangs wird er immer um 2 erhöht/dekrementiert.
- Vorzeichen-Flag (7. Bit): Es wird zurückgesetzt (0), was bedeutet, dass die im Akkumulator gespeicherte Zahl positiv ist. Null-Flag (6. Bit): Es wird zurückgesetzt (0), sodass das Ergebnis der in der ALU durchgeführten Operationen ungleich Null ist. Hilfsübertragsflag (4. Bit): Wir können sehen, dass b3 einen Übertrag generiert, der von b4 übernommen wird, sodass das Hilfsübertragsflag gesetzt wird (1). Paritätsflag (2. Bit): Es wird zurückgesetzt (0), was bedeutet, dass die Parität ungerade ist. Der Akkumulator enthält eine ungerade Anzahl von Einsen. Übertragsflag (0. Bit): Es ist gesetzt (1), die Ausgabe ergibt mehr als 8 Bit.
Verwendung der Register des 8085-Mikroprozessors:
Hier sind einige häufige Verwendungen der verschiedenen Register im 8085-Mikroprozessor:
- Akkumulatorregister (A): Das Akkumulatorregister ist das am häufigsten verwendete Register im 8085-Mikroprozessor. Es wird für arithmetische und logische Operationen sowie für Ein-/Ausgabeoperationen (I/O) verwendet. Der Akku dient auch als temporärer Speicherort für Daten.
- Programmzähler (PC)-Register: Das PC-Register wird verwendet, um den Speicherort des aktuellen Befehls zu verfolgen. Wenn eine Anweisung ausgeführt wird, wird das PC-Register automatisch erhöht, um auf die nächste Anweisung im Speicher zu verweisen.
- Stack Pointer (SP)-Register: Das SP-Register wird verwendet, um die Oberseite des Stapels zu verfolgen. Der Stack dient zur temporären Speicherung von Daten und Rücksprungadressen bei Unterprogrammaufrufen.
- Flag-Register: Das Flag-Register wird zum Speichern von Statusinformationen über die Ergebnisse arithmetischer und logischer Operationen verwendet, einschließlich der Frage, ob ein Ergebnis negativ, Null oder Übertrag ist.
- Allzweckregister (B, C, D, E, H und L): Diese Register werden für die allgemeine Datenspeicherung sowie für die Adressierung von Speicherorten verwendet. Sie können paarweise als 16-Bit-Register verwendet werden, z. B. BC, DE und HL, für eine effizientere Adressierung von Speicherorten.
- Befehlsregister (IR) und Maschinenzyklusregister (MCR): Diese Register werden intern vom Mikroprozessor verwendet, um Anweisungen zu dekodieren und das Timing von Maschinenzyklen zu steuern.
Merkmale dieser Register sind:
- Auf alle Register im 8085-Mikroprozessor kann direkt von der Arithmetik- und Logikeinheit (ALU) zugegriffen werden, was eine effiziente Datenverarbeitung ermöglicht.
- Das Akkumulatorregister wird als Standardziel für die meisten arithmetischen und logischen Anweisungen verwendet, was die Programmierung vereinfacht.
- Die Allzweckregister können zum Speichern von Daten während Berechnungen verwendet werden, sie können aber auch zum Speichern von Speicheradressen verwendet werden, was sie für den Zugriff auf Speicherorte nützlich macht.
- Die Programmzähler- und Stapelzeigerregister sind für die Verwaltung des Befehls- und Datenflusses innerhalb eines Programms von entscheidender Bedeutung.
- Das Flag-Register liefert wertvolle Informationen über die Ergebnisse arithmetischer und logischer Operationen und ermöglicht so eine effiziente Entscheidungsfindung in Programmen.
- Das Befehlsregister speichert den aktuell ausgeführten Befehl und ermöglicht so eine effiziente Decodierung und Steuersignalerzeugung durch die Steuereinheit.
Vorteile:
- Schneller Zugriff: Register bieten eine schnelle und effiziente Möglichkeit, auf Daten zuzugreifen und Operationen auszuführen. Da sich die Register im Prozessor befinden, kann schnell auf sie zugegriffen werden, ohne auf den Abruf von Daten aus dem Speicher warten zu müssen. Reduzierter Speicherzugriff: Die Verwendung von Registern kann dazu beitragen, die Anzahl der erforderlichen Speicherzugriffe zu reduzieren, was die Gesamtleistung des Systems verbessern kann. Spezialisierte Funktionalität: Jedes Register im 8085-Mikroprozessor hat eine bestimmte Funktion, beispielsweise den Akkumulator für arithmetische Operationen und den Programmzähler zum Speichern der Adresse des nächsten Befehls. Diese spezielle Funktionalität kann die Programmierung und das Debuggen erleichtern. Reduzierte Komplexität: Durch die Bereitstellung dedizierter Register für bestimmte Zwecke reduziert der 8085-Mikroprozessor die Komplexität des Programmier- und Ausführungsprozesses.
Nachteile:
- Begrenzte Speicherkapazität: Der 8085-Mikroprozessor verfügt über eine begrenzte Anzahl von Registern, wodurch die Datenmenge, die zu einem bestimmten Zeitpunkt gespeichert und bearbeitet werden kann, eingeschränkt sein kann. Komplexe Adressierungsmodi: Einige der im 8085-Mikroprozessor verwendeten Adressierungsmodi können komplex sein, was die Programmierung erschweren kann. Kontextwechsel: In manchen Fällen kann der Wechsel zwischen verschiedenen Registersätzen den Programmierprozess zusätzlich belasten und komplexer machen. Mangelnde Flexibilität: Die feste Anzahl und Funktion der Register im 8085-Mikroprozessor kann die Flexibilität des Systems einschränken und die Anpassung an sich ändernde Anforderungen erschweren.