Anweisungen für den Zugriff auf die CPU

415
Newbie

Ich verstehe nicht, wie die CPU weiß, wann sie auf einen bestimmten Ort zeigen muss, an dem ein Maschinenformat der Anweisungen gespeichert ist? Ich weiß nicht genau, wie die CPU weiß, welchen Speicherplatz sie in den Programmzähler (Befehlssatz) einfügen muss, bevor diese bestimmte Anweisung tatsächlich ausgeführt wird. Ich hoffe, dass diese Frage nicht zu verwirrend ist, denn ich bin verloren: D

-5
Ich denke, diese Frage ist zu breit. Dies ist ein ziemlich langwieriges und komplexes Thema. Ich würde den Programmschalter recherchieren und ein wenig nachlesen. Wenn Sie etwas spezifischeres zum Nachfragen finden, können Sie eine neue Frage stellen. DrZoo vor 7 Jahren 0
Ich hatte Angst, dass es zu breit war, ich werde versuchen, sich neu zu formulieren, wie Sie sagen. Newbie vor 7 Jahren 0
Es ist eine sehr interessante Lektüre, kann aber aufgrund des Wissens, das jemand hat, verwirrend sein. Aus meiner persönlichen Erfahrung lernte ich, wie es funktionierte, indem ich Kurse in Computerarchitektur, Montageprogrammierung und Betriebssysteme belegte. In der Computerarchitektur wurde mir beigebracht, wie es funktioniert. Montage und Betriebssystem waren für mich nur ein Bonus. Hier finden Sie Material zu [PC (Programmzähler) und IR (Instruction Register)] (https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Overall/pc_ir.html). Es ist kurz, aber ich denke genug, damit Sie wissen, was Sie anfangen sollen. DrZoo vor 7 Jahren 0
Die CPU kennt aufgrund der CPU-Anweisung ihre aktuelle Verarbeitung. Sie sollten noch etwas recherchieren und diese Frage bearbeiten. Ramhound vor 7 Jahren 0
Ja, es ist interessant, und dein Material ist richtig. Program Counter ist ein schlechter Name für das, was Program Counter xD tut Newbie vor 7 Jahren 0

2 Antworten auf die Frage

0
sawdust

Ich weiß nicht, wie die CPU weiß, welchen Speicherplatz sie in den Programmzähler (Befehlssatz) einfügen muss, bevor diese bestimmte Anweisung tatsächlich ausgeführt wird.

Eigentlich ist es nicht so kompliziert.
Das Register des Programmzählers (auch als PC bezeichnet) enthält die Speicheradresse der (nächsten) Anweisung zum (Abrufen und) Ausführen.
(Angenommen, wir verwenden eine CPU mit Stack-Architektur.)

  • Beim Zurücksetzen des Prozessors (z. B. nach dem Einschalten) wird der PC automatisch mit einer vordefinierten Adresse geladen, von der erwartet wird, dass sie der Ort des ersten Befehls eines Bootstrap-Programms ist.

  • Wenn der auszuführende Befehl irgendeine Art von Verzweigungs-, Sprung- oder Aufrufoperation ist, wird die Zieladresse berechnet und in das PC-Register geladen. Die nächste Anweisung wird von dieser Zieladresse abgerufen und ausgeführt.

  • Wenn die ausgeführte Anweisung eine Rückgabeoperation ist, wird die Rücksprungadresse vom Stapel abgehoben und in das PC-Register geladen. Der nächste Befehl wird von dieser Rücksprungadresse ausgeführt (abgerufen und ausgeführt).

  • Für alle anderen Anweisungen wird das PC-Register einfach inkrementiert (dh " Zählungen "), um zur nächsten Anweisung im Speicher zu gelangen. Das heißt, die Anweisungen werden sequentiell ausgeführt (abgerufen und ausgeführt) (bis eine Anweisung vom Verzweigungstyp ausgeführt wird oder eine Unterbrechung auftritt).

  • Wenn ein Interrupt auftritt, wird der Inhalt des aktualisierten PC-Registers nach Abschluss des aktuellen Befehls auf den Stack gelegt (zur späteren Verwendung als Rücksprungadresse). Das PC-Register wird mit der Adresse eines Interrupt-Handlers geladen, der dann ausgeführt wird.

0
Newbie

Nach einigen Recherchen fand ich die Antwort. Zu Beginn erhält die CPU die Initialisierungsadresse unserer Anwendung, wenn unsere Anwendung gestartet wird. Diese Adresse ist zum Beispiel normalerweise 0x00000000 für die 32-Bit-Infrastruktur. Nach dem Start des ersten Mikroprogramms liefert er dem Programmzähler einen Speicherplatz, an dem der Befehl steht wird gelagert. Ich muss nur sagen, dass es mir leid tut, weil ich hier vor der Recherche eine komplexe Frage posten werde. Ich hoffe, dass jemand dies nützlich finden wird.