2017-09-30 3 views
-3

Ich habe über MIPS Speicherlayout gelesen: https://www.cs.uaf.edu/2004/fall/cs301/notes/notes/node12.html Als Anwendungsprogrammierer sehe ich nicht, wo die obige Speicherzuordnung für mich relevant sein kann, wenn ich meine Anwendungsprogramme schreibe . Ist es stattdessen relevant für Systemprogrammierer, Compiler/Assemblerschreiber, wenn sie die binären Adressen in ihren Codes erzeugen. Wenn ja, gibt es irgendeine Weisheit hinter der Wahl der oben genannten Interlaced-Adressen?MIPS Memoy Layout: an wen ist es relevant

Danke

+0

Die Karte wie geliefert ist die Speicherkarte * eine Anwendung sieht * - Es sagt nichts einem Systemprogrammierer. – tofro

+0

Danke @tofro. Ich meinte von Systemprogrammierer in seinem Fall: Compiler/Linker-Coder. Sie müssen das obige Mempry-Mapping durchführen, wenn sie die verschiedenen Speicheradressen auflösen – Karlo

Antwort

0

Die Karte geliefert, wie die Umgebung ist Ihre Anwendung „in geworfen“ wird. Es hat in der Tat einige wichtige Informationen:

  • Anwendungen müssen an der Adresse 0x400000
  • -Code + Data + Stapel darf nicht mehr als 2 Gigabyte
  • Wenn Ihr Stapel überläuft beginnen verknüpft werden, es läuft in die Daten, nicht Ihr Code (das wäre völlig anders, wenn der Stapel zum Beispiel von 0x400000 nach unten wuchs)
  • Verwendbare Adressen für Ihr Programm sind auf den Bereich von 0x400000 bis 0x7ffffff beschränkt, so ein Programm kann nicht mehr als 2GB
  • belegen

Da die Karte das Speicherlayout für eine Anwendung, also höchstwahrscheinlich virtuelle Adressen, zeigt, wäre es für einen Systemprogrammierer nicht sehr nützlich.

Verwandte Themen