Стековая организация памяти
Стек - неявный способ адресации, когда информация хранится в виде последовательности, в которой доступен только последний член. Аналогией стека может служить детская пирамидка, нижнее кольцо которой невозможно снять, пока не будут сняты все остальные. Стек всегда имеет единственный вход и выход информации - для хранения его адреса служит специальный регистр микропроцессора под названием указатель стека.
Стек- это структура данных, над которой можно осуществлять две операции: проталкивание (Push) значения и выталкивание (Pop).
Пример: Пусть требуется на время сохранить значения трех целочисленных 2-байтовых переменных N1, N2 и N3, а затем их все восстановить. Воспользуемся для этого стековой памятью. Пусть указатель стека содержит адрес 2006 (рис. а). Тогда по команде "записать в стек N1" процессор проделает следующее:
1. уменьшит указатель стека на 2;
2. запишет N1 по полученному адресу 2004 (рис. б);
3. аналогично при выполнении команд "записать в стек N2" и "записать в стек N3" значения этих переменных попадут в ячейки 2002 и 2000, причем указатель стека станет равным 2000 (рис. в).
|
® |
2006 |
2006 |
||||
|
2004 |
® |
2004 |
N1 |
|||
|
2002 |
2002 |
|||||
|
2000 |
2000 |
|||||
|
А |
б |
|||||
|
2006 |
2006 |
|||||
|
2004 |
N1 |
2004 |
N1 |
|||
|
2002 |
N2 |
® |
2002 |
N2 |
||
|
2000 |
N3 |
2000 |
??? |
|||
|
® |
В |
Г |
Теперь извлечем информацию: выполним команду "прочитать из стека в N3". При этом процессор
предыдущаяследующая