который теперь указывает на новую
стека), который теперь указывает на новую вершину D. Указатель
стека всегда фиксирует то, что было последним помещено в стек.
Фиг. 2.19(c) показывает состояние стека после операции POP.
Этой операцией значение D было извлечено из стека. Команда POP
помещает извлеченное из стека значение в указанное место. Если в
части (c) выполнялась команда POP AX, то процессор поместил
значение D в регистр AX (это уже дополнительный аспект, который мы
обсудим в следующей главе). POP увеличивает указатель стека.
Теперь он указывает на новую вершину, C. Заметим, что элементы
извлекаются из стека по описанному принципу LIFO. Последним
помещенным в стек элементом был D и он же первым извлечен из стека.
Обратите также внимание, что D так и осталось в памяти, однако
теперь уже не является частью стека. Логическая граница стека
находится по адресу, хранящемуся в его указателе. В данном случае
вершина стека оказывается ниже ячейки со значением D.
На Фиг. 2.19(d) видно, что происходит с D при помещении в сетк
нового элемента E. Элемент E записывается на место D и становится
новой вершиной стека. Мораль из этой истории такова, что хотя
извлеченные из стека значения могут оставаться в памяти, полагаться
на это не следует.
ГДДДґ ГДДДґ ГДДДґ ГДДДґ
і і і D і<ДД SP і D і і E і<ДД SP
ГДДДґ ГДДДґ ГДДДґ ГДДДґ
і C і<ДД SP і C і і C і<ДД SP і C і
ГДДДґ ГДДДґ ГДДДґ ГДДДґ
і B і і B і і B і і B і
ГДДДґ ГДДДґ ГДДДґ ГДДДґ
і A і і A і і A і і A і
ГДДДґ ГДДДґ ГДДДґ ГДДДґ
(a) (b) (c) (d)
Фиг. 2.19 Пример работы стека
В приведенном примере подразумевался принцип построения стека
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий