Стек.
Во многих случаях программе требуется временно запомнить некоторую информацию.
Эта проблема в персональном компьютере решена посредством реализации стека
LIFO ("последний пришел - первый ушел"), называемого также стеком
включения/извлечения (stack).
Стек – это область памяти для временного хранения данных,
в которую по специальным командам можно записывать отдельные слова (но не байты);
при этом для запоминания данных достаточно выполнить лишь одну команду и не нужно
беспокоиться о выборе соответствующего адреса: процессор автоматически выделяет
для них свободное место в области временного хранения. Наиболее важное использование
стека связано с подпрограммами, в этом случае стек содержит адрес возврата из
подпрограммы, а иногда и передаваемые в/из подпрограмму данные. Стек обычно рассчитан
на косвенную адресацию через регистр указатель стека. При включении элементов в
стек производится автоматический декремент указателя стека, а при извлечении –
инкремент, то есть стек всегда «растет» в сторону меньших адресов памяти.
Адрес последнего включенного в стек элемента называется вершиной
стека (TOS), а адрес сегмента стека – базой стека.