• Купить картины художников маслом
    • Купить картины художников маслом
    • rasa-art.ru

Навигация сайта

  • Главная
  • Статьи
  • Учебники
  • Программы
  • Друзья сайта

Как работает стек

Поговорим о стеке для чего он нужен и как работает стек в первую очередь предназначен для хранения промежуточных данных.

Для реального режима процессора связка сегмента ss указателем sp. Для защищенного режима просто указатель sp указывает на вершину и маневры с сегментом делать не нужно ! итак стек работает на оборот то есть с верху в низ допустим стек равен sp=20 после выполнения команды push ax он будит равен sp=18 и тд...  пушим регистр dx  и sp=16 при восстановление данных  вынимаем все что засунули  в обратном порядке так pop dx а затем только pop ax.

пример:

mov sp , 20

push ax  ; сохранение данных регистра

push dx  ; сохранение данных регистра

pop dx   ; восстановление данных регистра

pop ax   ; восстановление данных регистра

Из этого мы узнали что когда мы что нибудь засовываем в стек указатель регистра sp значение уменьшается а когда вытаскиваем значение увеличивается также узнали что вытаскивать из стека данные нужно в обратной последовательности !

Рассмотрим пример команды call поле ее выполнения она положит адрес возврата тобиж то место откуда вызывается и кладет в верхушку стека тобиж куда указывает sp указатель команда ret команда возврата из подпрограммы смотрит на указатель sp и использует эти данные для возврата ! хотя мы можем их подменить и попадем в другое место не туда откуда вызывали команду call так кстати и работает переполнение буфера !!! ну там конечно можно еще чего но все таки основы мне кажется я вам объяснил так как это все рассчитано на начинающего любителя программированию на ассемблере до следующего урока.

 

Техническая поддержка и аудит сайта.