Heim  >  Artikel  >  Welches Register speichert die Offset-Adresse im Codesegment?

Welches Register speichert die Offset-Adresse im Codesegment?

青灯夜游
青灯夜游Original
2021-01-22 13:54:019969Durchsuche

Das Register, das die Offset-Adresse im Codesegment speichert, ist: das Befehlszeigerregister. Das Befehlszeigerregister IP wird verwendet, um die Ausführungssequenz von Befehlen im Programm zu steuern. Während des normalen Betriebs enthält IP die Offset-Adresse des nächsten Befehls (Byte), der von der BIU abgerufen werden soll Einmal aus dem Speicher, wird die IP automatisch um 1 erhöht, um die sequentielle Ausführung von Anweisungen sicherzustellen.

Welches Register speichert die Offset-Adresse im Codesegment?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Dell G3-Computer.

Die Funktion des Registers besteht darin, Binärcode zu speichern, der aus einer Kombination von Flip-Flops mit Speicherfunktion besteht. Ein Flip-Flop kann 1-Bit-Binärcode speichern, daher muss ein Register, das n-Bit-Binärcodes speichert, aus n Flip-Flops bestehen.

Das Register, das die Offset-Adresse im Codesegment speichert, ist: das Befehlszeigerregister.

Die Befehlszeigerregister-IP (X86-CPU) entspricht dem Programmzähler-PC in der ARM-CPU und wird zur Steuerung der Ausführungsreihenfolge von Befehlen im Programm verwendet. Während des normalen Betriebs enthält die IP die Offset-Adresse des nächsten Befehls (Byte), der von der BIU abgerufen werden soll. Unter normalen Umständen wird die IP bei jedem Zugriff auf einen Befehlscode aus dem Speicher automatisch um 1 erhöht, um die Reihenfolge sicherzustellen Ausführung von Anweisungen. IP ist eigentlich der Adresszeiger, auf dem der Befehlsmaschinencode die Speichereinheit speichert. Der Inhalt von IP kann durch Übertragungsanweisungen (z. B. JMP) zwangsweise neu geschrieben werden, um die Reihenfolge der Programmausführung zu ändern.

Achtung! Das von uns kompilierte Programm kann nicht direkt auf IP zugreifen, das heißt, wir können keine Anweisungen verwenden, um den Wert von IP abzurufen oder einen Wert für IP festzulegen (wir können beispielsweise nicht die mov-Anweisung verwenden, um IP einen Wert zuzuweisen).

Erweiterte Kenntnisse: Konzeptunterscheidung

Anweisungsregister (IR, Instruction Register), das zum vorübergehenden Speichern der aktuell ausgeführten Anweisungen verwendet wird. Das Taktsignal des Befehlsregisters ist clk, das an der steigenden Flanke von clk ausgelöst wird. Das Befehlsregister speichert die vom Datenbus gesendeten Befehle in einem 16-Bit-Register, aber nicht alle Daten auf dem Datenbus müssen registriert werden, da manchmal Befehle auf dem Datenbus übertragen werden und manchmal Daten. Ob die Daten registriert werden müssen, wird durch das Ir_ena-Signal des CPU-Statuscontrollers gesteuert. Beim Zurücksetzen wird das Befehlsregister gelöscht.

Das Befehlszeigerregister IP (Befehlszeiger) wird zum Speichern des Adressoffsets des abzurufenden Befehls verwendet. Nur in Kombination mit dem CS-Register kann es die tatsächliche physikalische Adresse bilden, die auf den Befehl verweist.

Weitere verwandte Artikel finden Sie auf der Chinesischen PHP-Website! !

Das obige ist der detaillierte Inhalt vonWelches Register speichert die Offset-Adresse im Codesegment?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was bedeutet Reset-Taste?Nächster Artikel:Was bedeutet Reset-Taste?