Die CPU erzeugt keine Adressen im Sinne, sie aus dem Nichts zu erstellen. Stattdessen verwendet die CPU * * Adressen, die von anderen Teilen des Computersystems erstellt wurden, vor allem:
* Anweisungszeiger (IP) / Programmzähler (PC): Dieses interne CPU -Register enthält die Adresse der nächsten Ausführung der nächsten Anweisung. Die CPU holt Anweisungen aus dem Speicher mit dieser Adresse ab. Der IP/PC ist * inkrementiert * nach jedem Anweisungsabruf und generiert die Adresse für den nachfolgenden Befehl (nacheinander) effektiv.
* berechnete Adressen: Die CPU berechnet Speicheradressen basierend auf Anweisungen. Dies beinhaltet oft:
* direkte Adressierung: Die Anweisung enthält ausdrücklich die Speicheradresse.
* Indirekte Adressierung: Die Anweisung enthält die Adresse eines Speicherorts *, der * die Adresse der Daten enthält.
* Registrieren Sie die indirekte Adressierung: Die Adresse findet in einem CPU -Register statt.
* Basis + Offset Adressierung: Eine Basisadresse (möglicherweise aus einem Register) wird einem in der Anweisung angegebenen Offset -Wert hinzugefügt. Dies ist üblich, wenn Sie auf Elemente in Arrays zugreifen.
Diese Berechnungen werden durch die arithmetische Logikeinheit der CPU (ALU) durchgeführt, beinhalten jedoch keine ordnungsgemäßen * ordnungsgemäßen * ordnungsgemäße Weise. Die Adressen stammen aus Werten, die bereits in Registern oder Speicher vorhanden sind.
* DMA (Direktspelung Zugriff) Controller: Diese speziellen Chips können Speicheradressen unabhängig von der CPU generieren, um Daten direkt zwischen Speicher und Peripheriegeräten (z. B. eine Festplatte oder eine Netzwerkkarte) zu übertragen. Während dies Adressen erzeugt, liegt es außerhalb der direkten Kontrolle der CPU.
Kurz gesagt, die CPU erzeugt keine adressierten * adressierten * auf kreative Weise. Es ruft Adressen aus Anweisungen, internen Registern ab oder empfängt sie von anderen Hardwarekomponenten. Seine Aufgabe ist es, diese Adressen zu verwenden, um auf Speicher zuzugreifen.