Tutorial
Inlineassembler in FreeBASIC
Anhang II
Was ist ein Stack?
Nicht immer will man sich ein neues Label ausdenken, nur um kurzfristig mal den Wert eines Registers zu speichern, beispielsweise, weil man das Register für eine bestimmte Anweisung benötigt, den alten Wert aber nicht verlieren möchte.
In diesem Fall wünscht man sich sowas wie einen Schmierzettel. Den bekommt man mit dem Stack.
Der Stack ist eigentlich nichts weiter als ein Stück des Hauptspeichers, nur daß dort nicht mit festen Adressen gearbeitet wird, sondern die zu sichernden Daten einfach immer oben drauf geschrieben (push) bzw. von oben heruntergeholt werden (pop).
Der Zugriff ist also ganz einfach, vorausgesetzt man erinnert sich daran, in welcher Reihenfolge die Daten auf den Stapel gelegt wurden.
Ein spezielles Register, der Stackpointer esp zeigt stets auf das oberste Element des Stacks.
Da push und pop immer nur 32 Bits auf einmal transferieren können, ist der Stack in der folgenden Abbildung vier Bytes breit dargestellt.
Zusätzliche Informationen und Funktionen |
- Das Tutorial wurde am 09.08.2008 von Volta angelegt.
- Die aktuellste Version wurde am 25.04.2024 von Volta gespeichert.
|
|