Указатель стека постоянно указывает на
процессора 8088. Указатель стека постоянно указывает на текущую
вершину стека. Операция PUSH уменьшает указатель стека, POP
увеличивает его. Стек растет в направлении уменьшения адресов в
памяти. Основание стека располагается в памяти по большему адресу,
чем его вершина. Если вы нарисуете изображения стека с наименьшим
адресом сверху, как на Фиг. 2.19, то вершина стека окажется в
верхней части рисунка.
Мы занялись обсуждением стека потому, что стек используется для
хранения адреса возврата из процедуры. Как это делается?
Каждая команда CALL вызывает как бы выполнению команды PUSH для
стека - сохраняет в стеке адрес возврата. Команда RET извлекает из
стека, подобно команде POP, адрес возврата и помещает его в
указатель команд. 8088 использует стек для хранения адресов
возврата потому, что это позволяет вкладывать процедуры одна в
другую. Что такое вложение? На Фиг. 2.20 показан пример
вложенных процедур.
На Фиг. 2.20 показана абсурдная программа, которую мы
используем как пример вложения процедур. Часть (a) показывает
стек перед выполнением программы. Как только начинает выполняться
процедура MAIN, она вызывает процедуру SUBROUTINE_A. В это время
процессор сохраняет в стек адрес возврата. Часть (b) показывает
адрес возврата 103 помещенным в стек. SUBROUTINE_A в процессе
своего выполнения вызывает SUBROUNINE_B. Команда этого вызова
сохраняет адрес возврата 108 в SUBROUNINE_A. Когда SUBROUNINE_B
заканчивается, команда возврата извлекает из стека значение 108,
как показано в части (d). Процессор помещает это значение в
указатель команд, как требуется при команде возврата. Как видно на
листинге ассемблера, адрес 108 относится к SUBROUNINE_A и следует
сразу за вызовом SUBROUNINE_B. Затем SUBROUNINE_A заканчивается.
Команда возврата извлекает из стека значение 103 для указателя
команд. Адрес 103 относится к процедуре MAIN и следует сразу за
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий