Witam.
Pytanie tak jak w temacie. Na co w końcu on wskazuje?
Jedni mówią że na ostatni element stosu, inni zaś że na pierwszy wolny element na stosie. Już się w tym pogubiłem.
Na co wskazuje wskaźnik stosu?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1
0
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Warszawa
- Postów: 1454
1
Zawsze pokazuje na wierzchołek stosu, czyli na twoje będzie to pierwszy, wolny element.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 134
1
+------+
<---- SP
+------+
DATA
+------+
DATA
+------+
- Rejestracja: dni
- Ostatnio: dni
0
Można tak, a można siak. Zależy jaki stos masz na myśli.
Jeśli mowa o stosie w sensie architektury procesorów x86, to instrukcja push zmniejsza rejestr wskaźnika stosu i zapisuje wartość pod adresem wskazywanym przez rejestr.
Instrukcja pop pobiera wartość spod adresu wskazywanego przez rejestr i zwiększa wartość rejestru.
Czyli „wskaźnik stosu” wskazuje na ostatni element (nie na puste miejsce), z tym udziwnieniem że stos jest do góry nogami (rośnie w dół).
Jeśli mowa o jakiejś klasie zaimplementowanej w C++ to może być różnie.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1493
1
A żeby jeszcze zamieszać:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0473c/Cacbgchh.html