Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: Projekt: OS-Development  ::  Wie funktioniert die virtuelle Addressvergabe bei heutigen Systemen  
Gehen Sie zu Seite Zurück  1, 2
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
MemoryManagment
Unregistrierter




Beitrag MemoryManagment Unregistrierter 21:32:10 16.08.2014   Titel:              Zitieren

Ach hatte noch was falsch verstanden der Compiler wandelt eine Variable nicht in um (adresse1+offset),sondern der Compiler errechnet wo der Stack Pointer jetzt grade steht und schreibt (Aktueller Stand des StackPointers +/- Offset) um auf die gewollte Adresse zu kommen.Man kann ja immer nur vom aktuellen Stand aus weiter/zurück gehen.
SeppJ
Global Moderator

Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 27497
Beitrag SeppJ Global Moderator 22:07:16 16.08.2014   Titel:              Zitieren

Der Compiler ist nur bei der Übersetzung des Programmes aktiv.

Der Stackpointer ist wirklich ein Wert, der irgendwo im Prozessor steht. Der Compiler rechnet, wenn er das Programm erstellt, aus, wie viel Platz eine Funktion braucht und erzeugt dann am Anfang des Codes der Funktion eine Anweisung, die den Stackpointer um eben diesen Betrag weiter setzt. Dann kann er für die Funktion Code erzeugen, der in eben diesem Bereich (zwischen alter Stackgrenze und neuer Stackgrenze) machen kann, was er will. An keiner Stelle müssen konkrete Werte für die Adressen bekannt sein.



(Das ist in Wirklichkeit natürlich alles ein bisschen komplizierter (z.B. wie Rückgabewerte einer Funktion funktionieren), aber mit dieser Vorstellung kommt man schon recht weit.)

_________________
Korrekte Rechtschreibung und Grammatik sind das sprachliche Äquivalent zu einer Dusche und gepflegter Kleidung.


Zuletzt bearbeitet von SeppJ am 22:09:06 16.08.2014, insgesamt 2-mal bearbeitet
Erhard Henkes
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2000
Beiträge: 14843
Beitrag Erhard Henkes Mitglied 11:12:02 17.08.2014   Titel:              Zitieren

Für x86 und C habe ich den Mechanismus aufgezeigt: http://henkessoft.de/C/C- ....... %20Under%20The%20Hood.htm

_________________
OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm
C++ Forum :: Projekt: OS-Development  ::  Wie funktioniert die virtuelle Addressvergabe bei heutigen Systemen  
Gehen Sie zu Seite Zurück  1, 2
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.