Область стека


Область стека – это участок в ОЗУ, в котором и размещаются данные, помещаемые в стековую память.

 

 

Структура этой области:

 

 

На рисунке:

 

1 – Область стека – резервируется ОС для использования в качестве области для размещения данных стека при начальной загрузке ОС.

N – число ячеек, отведённых под область стека.

Н – первая ( с ниименьшим адресом);

К – последняя ( с наибольшим адресом) ячейки из области стека;

2 – SP (Stack Pointer, указатель стека) – специальный регистр, играющий большую роль в алгоритмах команд PUSH и POP.

 

Перед тем как операции со стеком будут впервые использованы, требуется специальная подготовка. Подготовка осуществляется операционной системой, и ещё на ранних стадиях загрузки операционной системы. Состоит в следующем:

1) Операционная система "резервирует" часть ОЗУ под область системного стека. Резервирует – в данном случае это означает просто то, что операционная система никогда не будет использовать адреса, отведённые под область стека - для какого либо другого использования.

2) В регистр SP прописывается адрес начала стека, первой ячейки стека. Как мы увидим позже, в ходе работы со стековой памятью – адрес, прописанный в SP, будет меняться. Говорят: SP указывает на первую из незанятых данными стека ячеек из области стека (на рисунке показано стрелкой от SP - к ячейке), и эту ячейку - принято называть "вершина стека".

 

Итак: в начале работы ЭВМ вершина стека - находится в первой ячейки памяти из области стека. Посмотрим: что будет происходить далее - при выполнении команд PUSH reg и POP reg.