Область стека
Область стека – это участок в ОЗУ, в котором и размещаются данные, помещаемые в стековую память.
Структура этой области:
На рисунке:
1 – Область стека – резервируется ОС для использования в качестве области для размещения данных стека при начальной загрузке ОС.
N – число ячеек, отведённых под область стека.
Н – первая ( с ниименьшим адресом);
К – последняя ( с наибольшим адресом) ячейки из области стека;
2 – SP (Stack Pointer, указатель стека) – специальный регистр, играющий большую роль в алгоритмах команд PUSH и POP.
Перед тем как операции со стеком будут впервые использованы, требуется специальная подготовка. Подготовка осуществляется операционной системой, и ещё на ранних стадиях загрузки операционной системы. Состоит в следующем:
1) Операционная система "резервирует" часть ОЗУ под область системного стека. Резервирует – в данном случае это означает просто то, что операционная система никогда не будет использовать адреса, отведённые под область стека - для какого либо другого использования.
2) В регистр SP прописывается адрес начала стека, первой ячейки стека. Как мы увидим позже, в ходе работы со стековой памятью – адрес, прописанный в SP, будет меняться. Говорят: SP указывает на первую из незанятых данными стека ячеек из области стека (на рисунке показано стрелкой от SP - к ячейке), и эту ячейку - принято называть "вершина стека".
Итак: в начале работы ЭВМ вершина стека - находится в первой ячейки памяти из области стека. Посмотрим: что будет происходить далее - при выполнении команд PUSH reg и POP reg.