| |
|
ELEKTRONIK |
|
|
|
|
|
Stapelspeicher (Stack)
Der Stack ist ein wortorganisierter Speicher mit implizitem Zugriff
LIFO-Speicher (Lat In First Out). DieRealisierung beim 68HC11 erfolgt als externer Stack (Software-Stack).Er ist Teil des Arbeitsspeichers, Die automatische Adressierung erfolgtüber den Stapelzeiger (Stackpointer, S). Der Stackpointer ist ein16-Bit-Register und zeigt immer auf die nächste freie Zelle. DerStack wächst zu kleiner werdenden Adressen ("nach unten"). Am Programmanfang muß der Stack mit einem sinnvollen Wert besetzt werden. Die Vorteile des SW-Stacks mit Stackpointer-Adressierung sind unter anderem: - Kapazität des Stacks ist der jeweiligen Anwendung anpaßbar
- keine Vereinbarung von Hilfszellen erforderlich
- keine Adreßangabe bei Verwendung des Stacks nötig
Befehle für den Stack-Zugriff
Anwendung des Stack
Der Stack dient dem Zwischenspeichern von Registerinhalten um:
- Register anderweit verwenden zu können
- Parameterübergabe bei Unterprogrammen (siehe später)
- "Retten" von Registerinhalten beim Unterprogrammaufruf
Zu Beginn des UP werden die verwendeten Register auf dem Stack abgelegt und
vor Rückkehr zum Hautprogramm wieder restauriert
- Speicherung der Rücksprungadresse bei Unterprogrammsprüngen
Die Abspeicherung erfolgt automatisch auf dem Stack bei JSR und BSR. Bei
RTS wird die Rücksprungadresse automatisch vom Stack geladen.
- Ablage des Programmstatus bei Interrupts durch CPU auf dem Stack.
Automatisches Laden des Programmstatus bei RTI.
Wichtig ist der sorgfältige und überlegte Umgang mit Stack- und SP-Operationen.
Damit kein Stack-Überlauf(-Unterlauf) auftritt:
|
|
|
|
|
|