Speicher-Adressierung in MIPS assembly
Ich war vor kurzem zu Lesen Patterson und Hennessy ' s Buch "Computer Organization and Design", um zu studieren ein bisschen Montage.
Ich kam in eine Abteilung, wo die lw und sw Maschine Anweisungen erklärt wurden und wie Sie eine 16-bit-unmittelbarer als die load/store-address. Was die Autoren Wiesen ist diese hier:
"Der 16-bit-Adresse bedeutet, dass ein load word Befehl laden Sie eine beliebige Wort innerhalb einer region [...] 8192 Worte an die Adresse in der base-register rs".
Meine Frage ist:
- Bedeutet das, dass alle Register, die die Adressen sind verteilt 8192 Worte voneinander?
- Auch, bedeutet es, dass der gesamte verfügbare Speicher für den Betrieb ist 32 * 8192 = 262144 Worte?
- nehmen Sie sich die Adresse registrieren, verwendet in der Anweisung, fügen Sie den unmittelbaren offset (16-bit-offset-Sie sprechen) und diese Summe ist die Adresse für den laden oder zu speichern. Der Wert im register und offset kann so ziemlich alles, so lange die Summe orientiert sich an der Größe des laden oder zu speichern.
- Aber im Grunde ist es gewährleistet, dass die offsets aus verschiedenen Registern nicht kollidieren, richtig? Ich bin mir nicht sicher, ob der geladene Wert aus dem register wird der Wert gehalten, dass die Speicher-Adresse oder die Adresse selbst...
- die Adresse kommt von der Summe aus dem Wert in register plus dem offset. Diese Adresse ist im Speicher, ram und Peripherie, die (general purpose) Registern kann nicht erreicht werden durch eine Adresse im Speicher. Ein paar bits in der Instruktion verwendet werden, zu entscheiden, welche register enthält einen Teil der Adresse.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht. Register haben keine Adressen.
Nicht. Diese immediates sind offsets auf die Basis-Adresse für den laden/speichern. Es ermöglicht Ihnen das angeben von Adressen innerhalb von -32768..+32767 bytes, die von der Basis-Adresse. 32768/sizeof(word) == 8192. Sie können einfach ändern Sie den Wert des base registrieren, wenn Sie möchten, um außerhalb des Bereichs.
Die Menge von Registern hat nichts zu tun mit der Menge an Speicher, den Sie ansprechen können.
Beispiel: