СТЕК


Стек – это одна из форм представления очереди. Стек – это массив памяти. Доступ: последним вошел – первым вышел. Для доступа используются регистры: SS – 16-битный в реальном режиме работы хранит адрес начала сегмента, в защищенном режиме – индекс в таблицу, LDT (локальный дескриптор), GDT (глобальный дескриптор).; ESP – указывает на вершину стека.

Стек растет в сторону уменьшения адресов. Если записать данные, значение указателя будет уменьшено (ESP -> к SS);

Для доступа к стеку используются команды: POP – занести данные в стек, PUSH – считать. Т.к. регистр ESP 32-разрядный, то при обращения к стеку его значение увеличивается или уменьшается на 4 байта.

Если заносим данное в стек, то ESP уменьшается на 4, и следующее данное заносятся по новому адресу.

B=0 – стек оперирует с 16-битными данными и ESP изменяется на 2 байта, иначе с 30-битными данными.

Со стеком еще работает регистр EBP (его 16-битная версия BP) используется для разбиения стека на кадры. Называется указатель базы или кадра стека. Используется для производительного доступа к стеку

Процессор не контролирует изменения в стеке, это возложено на программу.

Загрузка...