Einzelnen Beitrag anzeigen

Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#13

Re: Assembler, kleines Verständisproblem

  Alt 19. Apr 2004, 17:20
Zitat von Christian Seehase:
Um jetzt den ausgelagerten Prozess an eine andere physikalische Adresse zu legen müsste man, ohne Segmentregister, erst einmal alle beim Laden aufgelösten Adressen anpassen. Dies lässt sich umgehen, indem einfach die Segementregister für den Prozess auf einen neuen Wert gesetzt werden.
Schon passen die vorberechneten Werte wieder, da sie relativ zum jeweiligen Segmentregister zugreifen.
Das klingt einleuchtend. Jedoch hat die Segmentierung nichts mit der physikalischen Adresse im Speicher zu tun, dazu ist das Paging zuständig. Ich habe gerade nachgesehen: Linux zum Beispiel übersetzt eine logische Adresse zuerst über die Segmentation Unit in eine lineare und dann über die Paging Unit in eine physikalische Adresse. Pointer wie ebp könnten dann doch gleich eine lineare Adresse beinhalten, denn das würde einen Performancevorteil ergeben, weil die Adresse nicht zuerst noch per Segmentation in eine lineare Adresse umgewandelt werden muss. Eine zusätzliche Angabe des Registers, auf das sie sich bezieht, ist somit unnötig, zumal der gesamte adressierbare Speicher in ein Register passt und es nicht mehr -- wie auf dem 8086 -- eine zusätzliches Register für Adressierung geben muss.
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat